# 1 プロファイラとは

プロファイラとは、プログラム実行時の様々な状態を得ることにより、 その実行効率を調べるためのプログラムです。ここで解説するのは、 `profile` と `pstats` モジュールが提供するプロファイラ機 能についてです。このプロファイラはどの Python プログラムに対しても 決定論的プロファイリングをおこないます。また、プロファイルの結果 検証をす早くおこなえるよう、レポート生成用のツールも提供されています。

Python 標準ライブラリは3つの異なるプロファイラを提供します。

1. `profile` はピュア Python モジュールで、このあとすぐ説明します。 Copyright © 1994, by InfoSeek Corporation. バージョン 2.4 で 変更 された仕様: 組み込み関数やメソッド呼出しに費やされる時間も報告するようになりました

2. `cProfile` は C で書かれたモジュールで、少ないオーバーヘッドにより 長く実行されるプログラムのプロファイルに向きます。 Brett Rosen と Ted Czotter が提供した `lsprof` に基づいています。 バージョン 2.5 で 新たに追加 された仕様です。

3. `hotshot` は C モジュールでプロファイル中のオーバーヘッドを 極力小さくすることに焦点を絞っており、その代わりに後処理時間の長さという つけを払います。 バージョン 2.5 で 変更 された仕様: 以前より意味のある結果が得られているはずです。 かつては時間計測の中核部分に致命的なバグがありました

`profile` と `cProfile` の両モジュールは同じインタフェースを 提供しているので、ほぼ取り替え可能です。 `cProfile` はずっと 小さなオーバーヘッドで動きますが、まだ同じぐらいテストされたとは言えず、 全てのシステムで使えるとは限らないでしょう。 `cProfile` は実際には `_lsprof` 内部モジュールに被せられた 互換性レイヤです。 `hotshot` モジュールは特別な使い道のために取っておいてあります。