[转] python运行时内存分析工具meliae
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[转] python运行时内存分析工具meliae,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2278字,纯文字阅读大概需要4分钟。
内容图文
![[转] python运行时内存分析工具meliae](/upload/InfoBanner/zyjiaocheng/981/b3fb7ba16c0c469ba267e74dc6d5682d.jpg)
转自:https://my.oschina.net/markco/blog/601773
利用meliae来监控python进程的内存占用情况
meliae是一个python进程内存占用监控、分析工具,它的安装需要依赖pyrex包。
一、安装:
安装python内存分析工具
sudo pip install cython
sudo pip install meliae
二、使用:
meliae会把某个时刻的内存给dump到一个文件中,然后再对该文件进行分析,当我们的某个python程序占用内存很大,可能有内存泄露发生时,可以使用该工具来进行检测分析。
scanner.dump_all_objects()
om?=?loader.load()
om.compute_parents()
om.collapse_instance_dicts()
print?om.summarize()
1、在需要dump内存的地方,写上以下代码即可:
from meliae import scanner
scanner.dump_all_objects('/opt/log/dump.txt')
这样,我们就可以把当前的内存Objects都导出到了dump.txt。
2、然后再进行分析:
from meliae import loader
#加载dump文件
om = loader.load('/opt/log/dump.txt')
#计算各Objects的引用关系
om.compute_parents()
#去掉各对象Instance的_dict_属性
om.collapse_instance_dicts()
#分析内存占用情况
print om.summarize()
3、我的某个python程序分析结果如下:
Total 333015 objects, 188 types, Total size = 52.8MiB (55414199 bytes)
Index Count % Size % Cum Max Kind
0 10620 3 18096480 32 32 1704 POP3ClientProtocol
1 133004 39 6290033 11 44 31457 str
2 10628 3 5866656 10 54 552 Connector
3 10628 3 5866656 10 65 552 POP3ClientFactory
…….
从上面可以看到,共有333015个对象,占用了52M的内存
其中,共有10620个POP3ClientProtocol对象实例,占用了32%约18M的内存
最大的对象也只占用了1.7K的内存,但由于对象很多,所以最终它占用的内存就很大了
那么,我们就大概知道了内存泄露的地方,就是这个POP3ClientProtocol对象,在使用完成之后,没有释放造成的
我们还可以继续分析某个对象,找出它的引用关系
#得到所有的POP3ClientProtocol对象
p = om.get_all('POP3ClientProtocol')
#查看第一个对象
p[0]
说明该对象的地址为2803894924,占用了1.7K内存,引用了51个对象,它被1个对象所引用
>>>POP3ClientProtocol(2803894924 1704B 51refs
1par)
#可以查看该对象的所有引用
p[0].c
>>>[str(3079323384 33B 10647par 'popuserid'), str(2814724096 45B 1par 'fuzimiao2000@sohu.com'), str(3079036128 31B 10624par 'mailnum'), int(165090672 12B 29par '75'),
#查看谁引用了这个对象
p[0].p
>>>[POP3ClientFactory(2803893100 552B 15refs 3par)]
聚合全网技术文章,根据你的阅读喜好进行个性推荐
下载 APP ?开源中国(OSChina.NET) ? 工信部 ?开源软件推进联盟? 指定官方社区 深圳市奥思网络科技有限公司版权所有 ?粤ICP备12009483号-3内容总结
以上是互联网集市为您收集整理的[转] python运行时内存分析工具meliae全部内容,希望文章能够帮你解决[转] python运行时内存分析工具meliae所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。