对python程序内存泄漏调试的记录
调试python程序时,用下面这段代码,可以获得进程占用系统内存值。程序跑一段时间后,就能画出进程对内存的占用情况。发现进程的内存占用一直再上涨,而这从逻辑上来说是不正常的,所以想到程序可能发生了Memory Leak。参数a这样可迭代的对象,稍不注意,它就能增长的很快。说白了,python的Memory Leak,就是“进程占用的内存莫名其妙一直再升高”。首先想到,会不会是上面用的memory_usage_psutil函数统计错误呢。可以看到,强制GC后,程序执行变慢,但内存依然不断升高。用guppy查看python对象占用的堆内存大小将main修改如下,即可查看python对堆内存的占用量。还可以通过下面这种方式,查看这个占内存最大的list中的数据类型。关于guppy的详细用法,可以看这里(
下载地址
用户评论