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

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

import gc
gc.set_debug(gc.DEBUG_LEAK)
gc.disable()
# 問題の処理
gc.collect() # 回収された循環参照や回収不能オブジェクトが表示される
このブログに乗せているコードは引用を除き CC0 1.0 で提供します。