非常に役立つと思われる投稿をいくつか見つけました。それらのすべての情報を消化する時間はまだありませんが、リンクを投稿して、それらも見ていただけるようにすると思いました.
Marius Gedminas は、Python テスト スイートでの memleaks のハンティングに関する 2 つの投稿を行っています。彼は組み込みのモジュールgc
とinspect
モジュールを使用し、オブジェクト グラフを csv ファイルとしてディスクにダンプするだけなので、このアプローチはアプリケーションに対しても非常にうまく機能するはずmp
です。
時間があるときに、今日の後半に自分のことを調べます。
アップデート
objgraph
Marius は、 (リンク)という名前のオープン ソース プロジェクトとしてテスト装置をリリースしました。オブジェクト参照を追跡しgc
ますが、関数呼び出し後に追加された型のインスタンスの数などの役立つ情報を出力したり、オブジェクトの完全な参照チェーンを表示したりできます。
mp
ドキュメントはかなり自明であり、アプリケーションでも同様に機能しない理由がわかりません。
ただし、メモリリークが基になる c ライブラリから発生している場合、これは役に立たない可能性があります。少なくとも、リークがどこにあるかを知る必要があります。Python コードに含まれていないことが判明した場合は、コードをリファクタリングして、メイン プロセスで関連する c ライブラリを実行し、Valgrindなどを使用してリークを検出できるようにする必要があります。
元の投稿
http://mg.pov.lt/blog/hunting-python-memleaks.html
彼が使用しているツールについて詳しく
説明するものhttp://mg.pov.lt/blog/python-object-graphs.html
私が始めた投稿
http://www.lshift.net/blog/2008/11/14/tracing-python-memory-leaks