最佳答案
在下面的示例中,我有一些关于内存使用的相关问题。
如果我用翻译器,
foo = ['bar' for _ in xrange(10000000)]
我机器上使用的真实内存升到了 80.9mb
。然后,
del foo
真正的内存下降,但只有 30.4mb
。解释器使用 4.4mb
基线,那么不向操作系统释放内存的 26mb
有什么好处呢?是因为 Python 是“提前计划”的,认为您可能会再次使用那么多内存吗?
为什么它释放 50.5mb
特别是-什么是金额释放的基础上?
有没有一种方法可以强制 Python 释放所有使用的内存(如果您知道不会再次使用那么多内存的话) ?
注意
这个问题不同于 如何在 Python 中显式释放内存?
因为这个问题主要处理的是即使解释器通过垃圾收集释放了对象(使用或不使用 gc.collect
) ,内存使用量也会从基线增加。