重新加载相同文件时内存使用量增加

时间:2018-09-09 04:09:26

标签: python python-3.x numpy scipy

每次加载npy文件时,内存使用都会增加。以下迷你示例说明了此问题。

import numpy as np
X = np.random.randn(10000,10000)
np.save('tmp.npy',X)

现在,如果执行以下行多次,则每次内存使用量都会增加

y=np.load('tmp.npy')

我发现与npz文件here完全相似的问题,但是解决方案是使用适用于npy文件的函数。 有想法吗?

1 个答案:

答案 0 :(得分:2)

前提是有缺陷的:加载文件时内存使用量确实会暂时增加,并且可能第二次甚至第三次再次增加,但是最终垃圾收集器将运行并且内存将被释放。

如果您不想等待不确定的时间来回收内存,则可以在需要回收内存时显式强制垃圾回收器运行:

import gc
gc.collect()

如果不再需要数据,还可以在加载数组后显式删除它:

del y

但是,如果您既不做任何事情,又一次又一次地重复加载相同的数据,则内存使用量不会永远增加-在某个时候,垃圾收集器将运行,内存使用量将减少。这是自动发生的,您通常不必担心。