1

Apache サーバーが PHP ページをロードするのにかかる時間を知ることはできますか? Apache サーバーで実行されているすべてのページに対して、Apache サーバー内で生成されるログ ファイルはありますか?

4

4 に答える 4

9

PHP がページを生成するのにかかった時間を知りたいと仮定します。

スクリプトが開始されると、5.1 以降、$_SERVER使用できるというエントリがありますREQUEST_TIME。リクエストが開始された時刻が含まれています。スクリプトの最後で、次のように計算できます。

$time_taken = time() - $_SERVER['REQUEST_TIME'];

明らかに、これはあまり正確ではないため、新しい方REQUEST_TIME_FLOATが PHP 5.4 で導入されました。

$time_taken = microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];

< 5.4 では、下位互換性のためにスクリプトの先頭でこのスニペットを使用できます。

if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) {
    $_SERVER['REQUEST_TIME_FLOAT'] = microtime(true);
}

アップデート

Apache にこれを行わせるには、%Tand/or %Dlog format オプションを追加します。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined

この%Tオプションを使用すると、かかった秒数をログに%D記録し、マイクロ秒をログに記録できます (Apache 2 以降)。

参照:リクエストの処理にかかる時間

于 2012-11-16T06:29:06.223 に答える
2

アクセスログにマイクロ秒単位でかかった時間 (%D) を記録できる apache のログ形式を試すことができます。

http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats

試したことはないですが..

于 2012-11-16T06:59:26.643 に答える
1

コードの先頭に現在のタイム スタンプを出力し、最後にそれを出力して、開始時刻から終了時刻を差し引くと、データの読み込みと実行にかかる合計時間を確認できます。

于 2012-11-16T06:13:03.497 に答える
1

これを使用して、自分でログ ファイルを作成できます。

ヘッダーファイルの先頭に:

$process_start = date('H:i:s');

フッターファイルで

$process_end = date('H:i:s');
echo "<br/> process_start {$process_start}<br/> process_end {$process_end}"

最善の方法ではありませんが、うまくいくかもしれません

于 2012-11-16T06:16:44.250 に答える