6

JQueryを介してJSによってロードされているPHPスクリプトがあります$.ajax。以下を使用して、PHPスクリプトの実行時間を測定しました。

$start = microtime(); // top most part of code
// all other processes that includes AES decryption
$end = microtime(); // bottom part of code
file_put_contents('LOG.TXT','TIME IT TOOK: '.($end-$start)."\n",FILE_APPEND);

それは1秒未満のどこかで測定しました。PHPスクリプトを追加/追加することはありません。

JS$.ajaxコードでは、実行時間を次のように測定しました。

success: function(response) {
    console.log(date('g:i:s a') + ' time received\n');
    // all other processes including AES decryption
    console.log(date('g:i:s a') + ' time processed\n');
}

受け取った時間と処理した時間は同じです。

ただし、Chromeデベロッパーツールを確認すると、PHPスクリプトが約8秒間読み込まれたと表示されます。

私がこれらのものを測定する方法の何が間違っている可能性がありますか?PHPの読み込みが速いことは確かですが、Chromeが8秒以上かかったと報告するのはなぜですか?

私はローカルホストを使用していますが、Webサーバーは高速であり、この問題が発生したのはこれだけです。他のすべてのAJAX呼び出しは高速です。

4

1 に答える 1

2

PHPセクションでは、文字列の代わりに浮動小数点microtime(true)数を使用するように使用していることを確認してください。文字列に減算を使用すると、誤った結果が生じる可能性があります。


例: http: //ideone.com/FWkjF2

<?php

// Wrong
$start = microtime();
sleep(3);
$stop  = microtime();
echo ($stop - $start) . PHP_EOL;  // Prints 8.000000000008E-5

// Correct
$start = microtime(true);
sleep(3);
$stop  = microtime(true);
echo ($stop - $start) . PHP_EOL;  // Prints 3.0000791549683

?>
于 2013-03-04T19:16:38.440 に答える