-1

私はCodeigniterが初めてです。数日前に CI 2.1.3 を WAMP (PHP 5.4.3) にインストールしました。基本的なレイアウトを作成し、プロファイラーを有効にしました。

プロファイラーを有効にすると、次の実行時間が表示されます。

読み込み時間: 基本クラス 0.0228
コントローラー実行時間 (レイアウト / インデックス) 0.0239
合計実行時間 0.0468

プロファイラーがどれほど正確かを確認するために、次のビュー ファイルに含めることにしました。

$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
エコー $time;

上記の出力は次のとおりです。0.064446926116943

今ではCI Profilerと同等ではありません。

何か不足していますか?CI プロファイラーは正確ですか?

4

1 に答える 1

1

CI プロファイラーは実際に測定を行うのではなく、ベンチマーク ライブラリが測定を行います。microtime()マークが追加されたときにタイムスタンプを取得することで、各ベンチマークを測定します。次に、プロファイラーは開始マークと終了マークの差を計算します。

違いは、最初のベンチマークが設定される前の初期化時間によるものです。

最初のベンチマークが開始されるソースコードの場所を確認できます。ファイルsystem/core/codeigniter.phpの 108 行目にあります。

$BM =& load_class('Benchmark', 'core');
$BM->mark('total_execution_time_start');
$BM->mark('loading_time:_base_classes_start');

もちろん、そのコードが実行される前に既にロードされたファイルがあったため、違いはそこから生じます。

于 2013-03-22T19:56:24.510 に答える