導入

導入 -- Benchmarking_Benchmark について

Benchmarking_Benchmark について

Benchmark はシンプルなフレームワークで、 PHP スクリプトやアプリケーションの実行所要時間を取得したり プロファイルやベンチマークを取得したりすることができます。 これらを行うために提供されているクラスが Benchmark_TimerBenchmark_Profiler および Benchmark_Iterate です。

このパッケージは、非常に簡単に使用することができます。 個々のクラスについては別途詳細に説明しますが、基本的な使い方はどれも同じです。 基本的に、まずいずれかのクラスのインスタンスを作成してから スクリプト (あるいはプロファイルを取得したいコード片) の処理を開始し、後で結果を解析します。

これらのクラスにはすべて、ふたつの動作モードがあります。 automatic (自動モード) と manual (手動モード) です。自動モードの場合は、 プロファイリングの開始と終了、そして結果の表示を自動で行います。 手動モードの場合は、開始や終了、そして結果の表示を自分で指示する必要があります。

自動モードは、スクリプト全体や特定の関数など、 決まった部分をお手軽にテストしたい場合に便利です。 手動モードでは、より詳細な制御ができるようになります。 調査したい箇所を任意に指定したり、 結果を解析してから表示したりといったことが可能です。 自動モードでは、結果も自動的に表示されます。 手動モードでは、結果をログに書き出したりデータベースに保存したりといったことも可能です。

自動モードでクラスを操作したい場合は、コンストラクタのパラメータに TRUE を渡します。 パラメータを省略したり、あるいは FALSE を指定したりした場合は、そのクラスは手動モードで動作します。

どのクラスを使用すればいいのですか?

このパッケージで最も基本となるクラスが Benchmark_Timer です。 このクラスには、ある特定のコードの実行所要時間を記録するための関数が用意されています。

Benchmark_Profiler は基本的には Benchmark_Timer と同じですが、 記録開始時点と終了時点の間でセクションを指定することができます。 指定した場所を通過するたびに時刻が記録されます。 これにより、タイマーをネストさせて繰り返しコールできるようになります。

Benchmark_Iterate は、特定の関数を複数回実行させて、 実行するたびに時間の情報を記録するためのクラスです。