代码之家  ›  专栏  ›  技术社区  ›  Kernel

重新加载同一文件时,内存使用率会增加

  •  0
  • Kernel  · 技术社区  · 7 年前

    每次加载npy文件时,内存使用量都会增加。下面的小示例说明了这个问题。

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

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

    我发现了与npz文件完全相似的问题 here 你知道吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   John Zwinck    7 年前

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

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

    import gc
    gc.collect()
    

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

    del y
    

    但是,如果您不做这两件事,只是一遍又一遍地加载相同的数据,内存使用量就不会永远增长——在某个时候,垃圾收集器会运行,内存使用量就会减少。这是自动发生的,你通常不需要担心。