python - matplotlib 直方图中的内存泄漏

标签 python memory-leaks numpy matplotlib histogram

运行以下代码将导致内存使用量迅速攀升。

import numpy as np
import pylab as p
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
for i in range(100):
    n, bins, patches = p.hist(x, 5000)

但是,当将对 pylab 的调用替换为对 numpy 直方图方法的直接调用时,内存使用量是恒定的(它的运行速度也明显加快)。

import numpy as np
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
for i in range(100):
    n, bins = np.histogram(x, 5000)

我的印象是 pylab 使用的是 numpy 直方图函数。某处一定有错误......

最佳答案

Matplotlib 生成图表。 NumPy 没有。将 p.show() 添加到您的第一个代码中以查看工作的进展情况。

import numpy as np
import pylab as p
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
n, bins, patches = p.hist(x, 5000)
p.show()

您可能想先尝试使用较小的 np.random.randn(100000) 数字以快速查看结果。

编辑

创建相同的情节 100 次真的没有意义。

关于python - matplotlib 直方图中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849996/

相关文章:

ios - 分析器在检测内存泄漏方面真的值得信赖吗?

java - JVM 分析器与 Mac OS X Activity 监视器中的内存使用情况

python - 使用 Jenkins 自动执行 Python 脚本上的 Sphinx

python:如何枚举本地Windows组成员

python - 在 afp volume buggy 上使用 python 创建和写入文件

python - tensorflow : How do i find my output node in my Tensorflow trained model?

python - 从字典的特定键创建多维numpy数组

python - 属性错误 : 'module' object has no attribute

c++ - 如何在 C++ 中释放结构体指针数组?

python - 来自 numpy 直方图输出的 Matplotlib 直方图