Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3】ガーベッジコレクタでメモリ管理してくれないのでメモリ開放する

pythonにはガーベッジコレクタという機能がある
使われなくリストや変数に使われているメモリを自動的に解放してくれる機能

これがあるから安心だと思ってたけど
自分のpythonコードをcondorHTに流したところ、めちゃくちゃメモリを使う・・・そしてhold(H)状態になって止まる

原因は不要になったメモリが自動的に開放されていないので、どんどんメモリを食っていくから

解決方法は

del hoge
とかで、使っていないメモリを解放していけばいい


pythonのメモリ管理でとてもわかり易かった記事2つ

■ 過去記事 : 【python】pythonでメモリ不足になったときにすること

■ 過去記事 : PythonのPandasでメモリリーク?リークの可視化と暫定対策





delしたあとで、gc.collect()というのを呼ばないといけないという記事もあった
今回の場合はdelを大量に追加したら改善したので使わなかった

■ 過去記事 : Python でメモリをクリアする

■ 過去記事 : pythonでメモリを解放する必要はありますか。