当我将文件加载到 json 中时,python 的内存使用量飙升至大约 1.8GB,我似乎无法释放该内存。我整理了一个非常简单的测试用例:
with open("test_file.json", 'r') as f:
j = json.load(f)
很抱歉,我无法提供示例 json 文件,我的测试文件有很多敏感信息,但就上下文而言,我正在处理一个 240MB 大小的文件。运行上述 2 行后,我使用了前面提到的 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 文件,我可以提供给其他任何人试一试。