pyinstrument を使って Python のプロファイリングをする¶
pyinstrumentは Python のプロファイリングツールの 1 つで、コードの実行時間を計測して可視化できる。この記事では、pyinstrument の使い方を紹介する。
install¶
使い方¶
CLI から実行する方法と、Python コード内から呼び出す方法の 2 通りを紹介する。
CLI¶
CLI で使う場合は次のように使う。
-r htmlを使うと HTML ファイルに出力できる。そのファイルを確認することで、どの処理に時間がかかっているかを視覚的に理解しやすい。各オプションは-h, --helpで確認できる。
Python¶
Python のコード内で使う場合は次のように使う。
Python API も CLI と同様に HTML ファイルに出力できる。pyinstrument の API リファレンス
出力例¶

サンプルの HTML ファイルはpyinstrument の出力プレビューで確認できる。
関連リンク¶
IPython や WebAPI フレームワーク、Pytest 実行の中で pyinstrument を使う方法も公式ドキュメントで紹介されている。
実際に使ってみた感想¶
pyinstrument は Python のプロファイリングツールの中でも使いやすいツールの 1 つだと感じた。特に HTML ファイルに出力することで、どの処理に時間がかかっているかを視覚的に理解しやすい。CLI でも Python API でも簡単に使えるので、ユースケースに応じて使い分けができる。類似のツールであるpy-spyも HTML 出力でき、Rust で書かれているので速く、パフォーマンスへの影響も少ない。それでも、プロファイル結果の分かりやすさの点で pyinstrument の方が個人的には好みだ。 ただし、pyinstrument のメモリ周りには気になる点があり、一部のケースではパフォーマンスが劣化して OOM も発生した。そのため、必要なら他のプロファイリングツールと組み合わせることが望ましく、pyinstrument は本番環境ではなく開発環境での利用を推奨する。