Python内存泄漏我有一个长时间运行的脚本,如果让它运行得足够长,将消耗我系统上的所有内存。没有详细介绍脚本,我有两个问题:是否有任何“最佳实践”可以帮助防止泄漏发生?有哪些技术可以调试Python中的内存泄漏?
3 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
Tracemalloc模块作为内置模块集成,从Python 3.4开始,显然,它也可用于以前版本的Python作为第三方库(尽管尚未测试)。
该模块能够输出分配最多内存的精确文件和行。恕我直言,这些信息比每种类型的分配实例的数量更有价值(99%的时间最终成为很多元组,这是一个线索,但在大多数情况下几乎没有帮助)。
我建议你将tracemalloc与pyrasite结合使用。10次中的9次,在pyrasite-shell中运行前10个片段将为您提供足够的信息和提示,以便在10分钟内修复泄漏。然而,如果您仍然无法找到泄漏原因,pyrasite-shell与此线程中提到的其他工具相结合可能会给您更多提示。您还应该查看pyrasite提供的所有额外帮助程序(例如内存查看器)。
添加回答
举报
0/150
提交
取消