CI_Benchmark
CI_Benchmarkクラスは、マークした二つの間の処理時間を計測する機能とメモリ使用量の表示機能を提供します。
mark()
- 開始マークポイント
- 終了マークポイント
計測したい2つのマークポイントを指定することで、計測開始マークポイントと計測終了ポイント間でかかった 処理時間を計測します。 マークポイントは複数指定することができます。
mark()メソッドの引数に、開始ポイントを識別する任意の文字列を指定します。
mark()メソッドの引数に、終了ポイントを識別する任意の文字列を指定します。
elapsed_time()
- 小数点桁数
- total_execution_time_start
- controller_execution_time_( クラス名 / アクションメソッド名 )_start
controller_execution_time_( クラス名 / アクションメソッド名 )_end
mark()メソッドで指定した、開始マークポイントと終了マークポイント間でかかった処理時間を返します。
echo $elapsed_time;
// 0.0152
第一引数に開始マークポイントを指定した文字列、第二引数に終了マークポイントを指定した文字列を指定します。
echo $elapsed_time;
// 0.01521
第三引数には小数点の桁数を指定することができます。デフォルトは「4」桁です。
「CodeIgniter.php」は「CI_Benchmark」クラスをロードした直後に開始マークポイント「total_execution_time_start」をセットします。従って、ビューでレスポンス出力時に第一引数を「total_execution_time_start」として「elapsed_time()」メソッドを実行するとWebアプリケーションの総実行時間を取得することができます。
第二引数に任意の終了マークポイントを指定すると、Webアプリケーションの実行開始から任意の終了マークポイントまでの処理時間を計測することができます。
'controller_execution_time_( my_class / my_method )_start',
'controller_execution_time_( my_class / my_method )_end'
);
上記の指定はコントローラクラスのロードからアクションメソッドの実行終了までの処理時間の測定です。 アクションメソッドが終了するまでの指定のため、ビューで利用可能となります。
memory_usage()
- CodeIgniterのビューレンダリングを使わずに、Smartyなどのテンプレートエンジンを利用する場合は 「memory_usage()」の機能を利用することができません。
「memory_usage()」メソッドを実行すると、単に「{memory_usage}」という文字列を返します。
実は、「CI_Output」クラスによってビューをレンダリングする際に「{memory_usage}」という文字列はPHPの「memory_get_usage()」を実行しメモリ使用量に変換されています。
つまり、「memory_usage()」メソッドはビューの中で実行しなければ意味がありません。また、このメソッドを使わずに、テンプレートに直に「{memory_usage}」という文字列を記述するだけでもよいことになります。