我可以使用gc.collect()吗?

时间:2015-12-10 12:00:47

标签: python python-2.7 memory-leaks garbage-collection

TLDR:在我的脚本中添加gc.collect()修复了内存泄漏问题。这是怎么发生的?

长版本:在对数据库更新方式进行更改后,我的Flask服务器中出现内存泄漏。在更改之前,服务器进程的驻留集大小为28kB。应用此更改后,它将在两天内增长到250 Mb。

我已经对堆进行了一些测试,但我没有得到悬挂引用可能的任何线索。所以我在数据库提交后添加了gc.collect()(每15秒发生一次)。

这以某种方式神秘地解决了它,因为它现在已经运行了一个小时并且它保持在29.5kb以下(在修复之前它现在会更高)。我不确定为什么这个改变会解决这个问题,因为Python有自动GC,而我只是强制立即改变。使用gc.collect()是一个可行的解决方案来解决泄漏问题(例如没有副作用)?

0 个答案:

没有答案