在执行其他内存密集型操作之前,如何清除垃圾回收对象?或者在内存已满时自动完成?
为什么看起来Python(+ Eclipse)会以2 GB(Win32)引发内存异常,而实际上在Windows上仍然没有使用某些内存?是否在任何地方定义了限制?
答案 0 :(得分:2)
您可以使用gc
模块调整垃圾收集器的性能 - 例如,使用gc.set_threshold
- 或者您可以"手动"收集垃圾:gc.collect
。但是,我相信在大多数情况下,只要他们的引用计数变为零,就会收集对象。
所以要明确一下,(谢谢delnan!)垃圾收集只是存在循环引用才能使refcounts达不到零的问题。
还请注意gc
文档中的这一行:
调试泄漏的程序调用{{1}}。
答案 1 :(得分:1)
在Windows 32bit应用程序上,最大内存限制为2GB。有一个引导选项会将其提交到3Gb。您也可以尝试升级到64位Windows / Python。