pythonメモリリーク位置決め
問題の初歩的な位置づけ
これにより、現在の実行コードのメモリオーバーヘッドの最大10個の命令を取得できます.
これにより、ループのたびに文が漏れるメモリの種類と漏洩メモリの種類を特定できます.
matplotlibライブラリでtransform.pyの下のset_childrenという関数は、リアルタイムグラフで深刻なメモリ漏洩を引き起こす.
まずピットを残します(現在、関数の辞書を手動で解放して解決できますが、図面を最大化した後に縮小した後にレイアウトが混乱する問題が発生します)
import tracemalloc
tracemalloc.start()
'''
'''
snapshot = tracemalloc.take_snapshot()
top_stats = snapshots.statistics("lineno")
print("[top 10]")
for stat in top_ stats[:10]:
print(stat)
これにより、現在の実行コードのメモリオーバーヘッドの最大10個の命令を取得できます.
from collections import defaultdict
from gc import get_objects
before = defaultdict(int)
after = defaultdict(int)
for i in get_objects():
before[type(i)] += 1
#
for i in get_objects():
after[type(i)] += 1
print([(k, after[k]-before[k]) for k in after if after[k]-before[k]])
これにより、ループのたびに文が漏れるメモリの種類と漏洩メモリの種類を特定できます.
matplotlibライブラリでtransform.pyの下のset_childrenという関数は、リアルタイムグラフで深刻なメモリ漏洩を引き起こす.
まずピットを残します(現在、関数の辞書を手動で解放して解決できますが、図面を最大化した後に縮小した後にレイアウトが混乱する問題が発生します)