Pythonでメモリ使用量を分析する
memory_profiler を利用する
- インストール
$ pip install -U memory_profiler
memory_profiler の使い方は line_profiler と似ている。
@profile
デコレータを利用して、プロファイリングしたい関数を装飾することで、行ごとのメモリ使用量を測ることができる。
stream パラメータを指定して、結果をファイルに出力することもできる。
時系列の推移を見たい場合は、mprof
コマンドを利用する。
mprof run
で実行すれば、メモリ使用量が .dat ファイルに記録される。
mprof run my_script.py
そして、mprof plot
コマンドで matplotlib を使って、ファイルに記録されたメモリ使用量を可視化できる。
mprof plot -o example.png
memray を利用する
memory_profiler と同じで、pip でインストールする。
memray run
コマンドで実行する。マルチプロセスの場合は、--follow-fork
を指定する必要がある。
memray run --follow-fork example.py
flamegraph
サブコマンドでフレームグラフを含むHTMLファイルを生成する。
memray flamegraph memray-example.py.11869.bin