, 对于对象种类较少, 结构比较简单的程序适用, 我这个一个库套一个库, 内存还用的这么多,
guppy: 可以对堆里边的对象进行统计, 算是比较实用
pympler: 可以统计内存里边各种类型的使用,...获取对象的大小
上边这些虽然有用但是总是搞不到点子上, 上边这些都需要改我的源程序, 比较费劲, 线上的代码不是说改就能改的, 而且他们功能也都比较弱, 后来发现两个强大的工具:
tracemalloc...python进程动态修改里边的数据和代码(其实修改代码就是通过修改数据实现)
我开始的时候非常想用tracemalloc, 可是对python2特别不友好, 需要重新编译python, 而且只能用python2.7.8...到这里发现其实没有更多的全局变量指向这个d了, 而且发现所以有的方法的对象地址和d是相同的, 说明了这个对象其实是自循环引用的.
那么python不可能不支持循环引用对象的回收吧?...根据对象的id/address动态获取对象
?
查看垃圾回收的日志
?
作者:weidwonder
来源:http://www.jianshu.com/p/2d06a1a01cc3
----