python程序占用内存高_Python3:程序占用的内存比预期的多得多

我的python程序占用了比预期更多的内存或由内存分析工具返回 . 我需要一个策略来查找内存泄漏并修复它 .

详细

我在64位Linux机器上运行python3脚本 . 几乎所有代码都捆绑在一个对象中:

obj = MyObject(*myArguments)

result = obj.doSomething()

print(result)

在创建 obj 期间,程序将读取大小为ca.的文本文件 . 100MB . 由于我以多种方式保存信息,我希望整个对象占用几个hundret MB内存 .

实际上,从包pympler中使用 asizeof.asized(obj) 测量其大小会返回大约123MB . 然而, top 告诉我,我的程序占据了大约 1GB 内存 .

我知道方法中的局部变量会占用更多的RAM . 但是,查看我的代码,我发现这些局部变量都不会那么大 . 我再次使用 asizeof.asized 再次检查了这一点 .

我不担心脚本需要1GB的内存 . 但是,我并行执行了一些方法(在12个方面):

class MyObject()

def doSomething(arg):

# do something

def myParallelMethod(args)

with sharedmem.MapReduce() as pool:

result = pool.map(self.doSomething, args)

return result

这使得总内存使用量变为 8GB ,即使我将所有大对象放在共享内存中:

self.myLargeNumPyArray = s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值