Pythonアプリケーションのメモリ使用量を知りたいのですが、具体的にはどのコードブロック/部分またはオブジェクトが最も多くのメモリを消費しているかを知りたいです。Google検索で商用のものを見つけると、Python メモリ検証ツール(Windows のみ)。
誰も試したことがないので、以下を考慮してどれが一番良いのか知りたかったのです。
最も詳細な情報を提供します。
コードの変更は最小限に抑えるか、まったく変更する必要はありません。
ベストアンサー1
私のモジュールメモリプロファイラメモリ使用量の行ごとのレポートを印刷することができ、Unix と Windows で動作します (Windows では psutil が必要です)。出力はあまり詳細ではありませんが、目的は割り当てられたオブジェクトの徹底的な分析ではなく、コードがメモリを多く消費している場所の概要を示すことです。
関数を で装飾し@profile
、フラグを使用してコードを実行すると-m memory_profiler
、次のような行ごとのレポートが出力されます。
Line # Mem usage Increment Line Contents
==============================================
3 @profile
4 5.97 MB 0.00 MB def my_func():
5 13.61 MB 7.64 MB a = [1] * (10 ** 6)
6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7)
7 13.61 MB -152.59 MB del b
8 13.61 MB 0.00 MB return a