python Matplotlib在关闭函数后不会释放RAM内存

nr7wwzry  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(62)

我正在编写一个Python脚本,它可以生成许多图。这些图是从主程序中调用的,主程序递归地调用它们(我的意思是数百次)。
当main函数运行时,我看到我的计算机的RAM内存在执行过程中是如何填满的。而且,即使在main函数完成后,RAM内存的使用率仍然比主程序执行前高得多。有时它甚至可以完全填满RAM内存。
我尝试删除最重的变量并使用垃圾收集器,但净RAM内存使用率总是更高。为什么会发生这种情况?
我附上了一个简单的(和夸张的)例子,我的一个功能,我使用内存分析器看到逐行的内存使用。

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    15  100.926 MiB  100.926 MiB           1   @profile
    16                                         def my_func():
    17  108.559 MiB    7.633 MiB           1    a = [1] * (10 ** 6)
    18  261.148 MiB  152.590 MiB           1    b = [2] * (2 * 10 ** 7)
    19  421.367 MiB  160.219 MiB           1    c = a + b
    20  428.609 MiB    7.242 MiB           1    plt.figure(dpi=10000)
    21  430.328 MiB    1.719 MiB           1    plt.plot(np.random.rand(1000),np.random.rand(1000))
    22  487.738 MiB   57.410 MiB           1    plt.show()
    23  487.738 MiB    0.000 MiB           1    plt.close('all')
    24  167.297 MiB -320.441 MiB           1    del a,b,c
    25  118.922 MiB  -48.375 MiB           1    print(gc.collect())

字符串
我尝试删除最重的变量并使用垃圾收集器,但净RAM内存使用率总是更高。

ctzwtxfj

ctzwtxfj1#

我终于知道发生了什么。这是所有关于Spyder,如果我执行代码与股票python终端有没有内存泄漏。

相关问题