🐈
matplotlib でグラフのメモリを都度解放する
matplotlib でグラフのメモリを都度解放する
https://qiita.com/Masahiro_T/items/bdd0482a8efd84cdd270 の説明を参考にして
plt.subplots
を使う場合の応用
import matplotlib.pyplot as plt
import numpy as np
import psutil
num = 1000
mem_ary = np.empty(0)
for i in range(num):
# メモリサイズが大きいグラフを描画
x = np.arange(1e7)
y = np.arange(1e7)
fig, ax = plt.subplots()
ax.plot(x, y)
fig.clear()
plt.close(fig)
# メモリ使用量を記録
mem = psutil.virtual_memory().used / 1e9
mem = round(mem, 1)
mem_ary = np.append(mem_ary, mem)
print(f"{i}: {mem}")
x = np.arange(num)
print(mem_ary)
plt.plot(x, mem_ary)
print("showing...")
plt.show()
print("showed")
結果
1000 回 plot したときの使用メモリ推移
参考リンク
Discussion