当我将文件加载到json中时,pythons的内存使用率达到1.8GB左右,我似乎无法获得要释放的内存。我放在一起很简单的测试用例:巨大的Python的json模块的内存使用情况?
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文件,我可以提供给任何其他人使用它。
请试用其他文件。你正在运行交互式会话或Python脚本文件?两者都显示相同的问题? – heltonbiker
相关:http://stackoverflow.com/questions/2400643/is-there-a-memory-efficient-and-fast-way-to-load-big-json-files-in-python – ChristopheD
@ChristopheD我的问题是内存永远不会被释放。我并不在乎在分析过程中使用了很多内存。 – Endophage