当我将文件加载到json中时,Python的内存使用量会急剧增加到约1.8GB,并且似乎无法释放该内存。我编写了一个非常简单的测试用例:
with open("test_file.json", 'r') as f:
j = json.load(f)
很抱歉我不能提供样例json文件,因为我的测试文件包含大量敏感信息,但是为了解释上下文,我正在处理一个大约240MB的文件。在运行以上两行代码后,我使用了先前提到的1.8GB内存。如果我接下来执行 del j
,内存使用量没有任何下降。然后我再加一句 gc.collect()
,内存仍然没有下降。我甚至试图卸载json模块并运行另一个gc.collect。
我正在尝试进行一些内存分析,但是heapy已经100%占用CPU约一个小时了,并且尚未产生任何输出。
有人有什么想法吗?我也尝试过使用cjson而不是打包的json模块。cjson使用的内存少约30%,但其他问题完全相同。
我在Ubuntu服务器11.10上运行Python 2.7.2。
我很乐意加载任何内存分析器,并查看它是否比heapy更好,并提供您认为必要的任何诊断。我正在寻找一个大型测试json文件,可以提供给其他人进行测试。
top
等中。)