删除变量不会从RAM内存中清除其内存

时间:2016-04-22 13:28:18

标签: python python-2.7 canopy

我正在广泛使用Python(Canopy)进行地球科学应用。因为我的应用程序是内存消耗,我试图找到方法来擦除我在程序中不再需要的变量,我尝试使用del命令擦除变量内存,但我发现Canopy使用的空间仍然是相同。关于如何从内存中完全擦除变量的任何想法。 感谢

1 个答案:

答案 0 :(得分:4)

您无法在Python中手动记录内存中的对象!

Python垃圾收集器(GC)将自动释放没有现有引用的对象的内存(每个解释器的实现细节不同)。它会在没有您交互的情况下定期检查背景中被遗弃的物体。

因此,为了使对象被回收,您必须通过为指向该对象的所有变量分配不同的值(例如None)来消除对它的所有引用。您也可以使用del语句删除变量名称,但正如您已经注意到的,这仅删除带引用的名称,而不删除对象及其数据本身。只有GC可以做到这一点。