python程序内存泄漏的解决方法

笔者在实际应用过程中,利用python解析交易数据,其中的方法是对文件夹进行遍历,然后根据里面的每个文件进行单独的解析,也就是用到了多层循环,结果导致内存占用越来越大,以至于最终内存满了而程序崩溃退出。

笔者查询了好多方法,包括直接使用gc进行内存回收, gc.collect()

但是还是不起作用。而很明显的一个现象就是程序人工中断退出之后,内存快速回收。

所以最终想了个办法就是使用python进行单独调用,具体方法如下:

import os

dataDir="d:/gjqmt/userdata_mini/datadir/SH/0/"
for root,dirs,files in os.walk(dataDir):
    for i in len(dirs):
        os.system("python parseHisDaily.py")

在上述代码中,每次使用os.system进行调用之后,都会自动进行内存资源的回收。

所以上面的解决办法也只能算是一种折中办法。

之前还看到一篇文章说的是利用 pympler进行查找内存泄漏的位置。但是因为笔者的程序调用了外部API,这个相对比较难查找,因此弃用。

此条目发表在其他分类目录,贴了标签。将固定链接加入收藏夹。

发表回复