読者です 読者をやめる 読者になる 読者になる

methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

Pythonプログラムがメモリを大量に使っているとき

Python

もし想定以上のメモリを Python プログラムが消費しているのであれば、ループの中で循環参照が生まれていることや、回収不能オブジェクト(循環参照なうえに __del__ メソッドが存在するためにgcがどこから循環を切っていいのか判らないオブジェクト)が存在しないかを疑う。

import gc
gc.set_debug(gc.DEBUG_LEAK)
gc.disable()
# 問題の処理
gc.collect() # 回収された循環参照や回収不能オブジェクトが表示される