Python内存限制?接近极限时清除GC?

时间:2011-06-25 15:19:19

标签: python windows eclipse memory garbage-collection

在执行其他内存密集型操作之前,如何清除垃圾回收对象?或者在内存已满时自动完成?

为什么看起来Python(+ Eclipse)会以2 GB(Win32)引发内存异常,而实际上在Windows上仍然没有使用某些内存?是否在任何地方定义了限制?

2 个答案:

答案 0 :(得分:2)

您可以使用gc模块调整垃圾收集器的性能 - 例如,使用gc.set_threshold - 或者您可以"手动"收集垃圾:gc.collect。但是,我相信在大多数情况下,只要他们的引用计数变为零,就会收集对象。

所以要明确一下,(谢谢delnan!)垃圾收集只是存在循环引用才能使refcounts达不到零的问题。

还请注意gc文档中的这一行:

  

调试泄漏的程序调用{​​{1}}。

答案 1 :(得分:1)

在Windows 32bit应用程序上,最大内存限制为2GB。有一个引导选项会将其提交到3Gb。您也可以尝试升级到64位Windows / Python。