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

Deleting variable does not erase its memory from RAM memory

我将 Python (Canopy) 广泛用于地球科学应用。因为我的应用程序很耗内存,所以我试图找到擦除程序中不再需要的变量的方法,我尝试使用 del 命令擦除变量内存,但我发现 space天篷还是一样的。关于如何从内存中完全擦除变量的任何想法。 谢谢

您无法在 Python!

中从内存中手动删除对象

Python 垃圾收集器 (GC) 将自动释放不再具有现有引用的对象的内存(每个解释器的实现细节不同)。它会在没有您交互的情况下定期检查后台的废弃对象。

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

现在,可以手动完成。为此,您需要分两步完成:

  1. 使用命令del从工作区中删除变量
  2. 使用命令 gc.collect 到 运行 垃圾收集器并清除 ram 内存

代码示例:

import numpy as np
import gc

a = np.array([1,2,3])
del a
gc.collect()

更多信息:link