在执行其他内存密集型操作之前如何清除垃圾收集对象?还是内存满了自动完成?
为什么看起来 Python (+Eclipse) 在 2 GB (Win32) 时抛出内存异常,而实际上在 Windows 上仍有一些内存未使用?是否在任何地方定义了限制?
最佳答案
您可以使用gc
模块调整垃圾收集器的性能——例如,使用gc.set_threshold
。 -- 或者你可以“手动”收集垃圾:gc.collect
.但是,我相信大多数时候,对象的引用计数归零后会立即被收集。
因此,明确地说,(感谢 delnan!)垃圾回收仅在循环引用阻止引用计数达到零时才成为问题。
另请注意 gc
文档中的这一行:
To debug a leaking program call
gc.set_debug(gc.DEBUG_LEAK)
.
关于Python内存限制?接近限制时清除GC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478663/