我偶尔会遇到手动调用的代码gc.collect()
,但目前还不清楚为什么.出于什么原因,如果有的话,手动运行垃圾收集是否有利,而不是让Python自动处理?
总之,效率.
如果您使用指针引用某些内容,则它正在使用内存.即使你停止指向它,它仍然占用内存很短的时间.
Python的垃圾收集用于使用引用计数.引用计数是一种明智的方式来判断什么东西不再需要内存(通过检查其他对象引用的频率).
不幸的是,引用计数仍然是一个计算,因此它会降低运行它的效率(特别是在不需要时),因此Python现在使用计划的垃圾收集.
问题在于,在某些特定功能中,Python现在不会立即进行垃圾收集,因为它会注意到某些内容不再使用(如引用计数的情况),因为它会定期收集垃圾.
您通常需要在许多服务器应用程序或大规模计算中手动运行垃圾收集,其中垃圾收集中的轻微违规对于释放内存很重要.
以下是Digi.com 的链接,如果我的解释不清楚,可以完美地总结.我希望这有助于布兰登!