pythonの実メモリがいつ解放されるのか気になったので調べてみた。 pythonはメモリを確保する際にドバっと取って使い回すような仕組みを持っている。 (最近の言語はみんなそうかも) この領域をarenaと呼ぶ。 余談だけど2.5以前(2.5の初期も入るのかな?)のバージョンではarena領域は小さくなることはない。 (Timのパッチからスタート。使いまわしはあってもfreeされることはなかった) タイミング的な話なのでもう結論書いちゃうと PyObject_Mallocで作って PyObject_Freeで解放 とまあ普通だった。 使われてないpoolのblockとかはpython objectが解放される毎に解放しているようだ。 なので参照カウントを下げ、PyObject_Freeで解放された時点で全体のメモリも小さくなる。 基本的な確保するblockの単位が256Kなので大きいob