# 2 旧バージョンのプロファイラとの違い

(この節は歴史的資料としてのみ意味を持っています。ここで述べている旧バー ジョンのプロファイラとは Python 1.1. 以前のものを指しています)

旧バージョンのプロファイリングモジュールとの大きな違いは、より少ない CPU 時間で、より多くの情報が得られるようになったことです。CPU 時間と情 報量のトレードオフではなく、トレードアップを実現したのです。

主な内容は次の通りです。

バグ修正:
  ローカル・スタック・フレームの扱いに関する不具合を修 正し、関数の実行時間を正しく計上するようにしました。

正確さの向上:
  プロファイラ自体の実行時間をユーザコード側に計上 してしまうことがなくなりました。プラットフォーム毎のキャリブレーション (補正)をサポートし、プロファイラがプロファイル中にファイ ルの読み込みをおこなわないようにしました(当然その時間をユーザコードの ものとして計上することもなくなりました)。

スピードアップ:
  2つ以上の(たぶん5つ)の点を改善した結果、CPU の 負荷が減りました。プロファイリング中はレポート生成用モジュール (`pstats`) を使う必要がないため、軽いプロファイラモジュールだけ を常時ロードするようにしました。

再帰的な関数のサポート:
  再帰エントリのカウントにより、再帰関数 内で処理に費やされる時間が正確に計算されるようになりました。

レポート生成ユーザインターフェースの大幅な改善:

  統計データを読み込む関数は任意の数のファイル名のリストを受け取り、独立 した複数のプロファイル結果を合わせて総合的なレポートが作成できるように なりました。ソートの基準はキーワードで指定できるようになりました(4つの 整数オプションを除く)。レポートはどのプロファイル・ファイルが参照され たかと同様に、どの関数がプロファイルされたかを示すようになりました。 そのほか出力形式は改善もおこなわれています。