のCPU使用率を測定するためには、私はこのようにそれを使用してみました結果、ようなもの3.0994415283203E-6
PHPのmicrotimeを使用して()関数/コード・ブロック
私は間違っていますか?
のCPU使用率を測定するためには、私はこのようにそれを使用してみました結果、ようなもの3.0994415283203E-6
PHPのmicrotimeを使用して()関数/コード・ブロック
私は間違っていますか?
より良い解決策。操作を平均化するためにコードを複数回実行します。
$runs = 500;
$start = microtime(true);
for ($i = 0; $i < $runs; $i++) {
//cpu expensive code here
}
$end = microtime(true);
$elapsed = number_format($end - $start, 4);
$one = number_format(($end - $start)/500, 7);
echo "500 runs in $elapsed seconds, average of $one seconds per call";
3.0994415283203E-6
は、0.0000030994415283203
と等しい。
E-6
は、小数点を6桁左に移動するように指示します。 E+6
は反対を意味します。 @decezeが述べたように、これは科学的表記法と呼ばれています。
パフォーマンステストを行っている場合は、コードを100000程度の反復ループに入れてから、結果の時間を100000で除算することをお勧めします。これにより、より正確な平均を得ることができます。
あなたは間違ったことはしていませんが、実際にタイミングを取っているコードは実際にはわずか1秒しかかかりません。
証明したい場合は、sleep
を数秒間押してください。
オプションの引数なしでmicrotime()
を使用しているように見えますが、あなたは、あなたがしているので、私は100%を確認していないと言います。
何がこれの出力です:
$now = microtime(true);
sleep(1);
echo microtime(true) - $now;
'true'はオプションの引数です。 – Joel
PHPは、常にそれがどのように高速で私を驚かせます。あなたのコードは正しいと思われます。たぶんあなたのコードは実際には3ミリ秒かかるだけです。
あなたはこのように長いループ、何かを作ってみることができます:
$x=0;
while ($x<1000000)
{
$x++;
}
はあなたのタイマーの内側にこのコードを追加します。私にとっては、100万回ループするのには通常約1/2秒かかります。これがあなたの時間を変えるかどうかを見てください。
'sleep(5);'コールを入れて、結果が変わることを確認してください。時間は少なくとも5秒でなければなりません。 –
そのように思えます。私は '4.9997820854187'を得ます – Alex
うわー! PHPは高速です!それは5秒以内に 'sleep(5);'を評価します! – Joel