Neden bu microtime PHP garip kadar gösteriyor

3 Cevap

Neden bu microtime PHP garip kadar gösteriyor

$start4 = microtime(true);
    // run some php code
$end4 = microtime(true);
print "Time4: ". ($end4 - $start4)."<br />";

The above is showing:
Time4: 2.69412994385E-5

Something with a more complex, longer running process shows up like this instead:
Time1: 0.000292062759399

3 Cevap

E-5, bilimsel gösterim. Eğer dize değeri ile bağlamak ne zaman olur gibi görünüyor. ... Number_format kullanmayı deneyin?

print "Time4: ". number_format($end4 - $start4, 10)."<br />";

Bu 10 yetkileri dönüştürülmesi (çok küçük ya da çok büyük) uzun sayılar için normaldir. E-5 sadece görüntülenen sayı (10/10/10/10/10) ile çarpılır başlandı anlamına gelir bu çok yapar az sayıda.

0.000000000000123 is much harder to read than 1.23E-13 (for example).

Yine başka bir formatta numarasını görmek istiyorsanız eğer:

$start = microtime(true);
$end = microtime(true);
echo "Time: ", number_format($end - $start, 50);

Bu ekranda numaraya 50 ondalık ev katacak.

Umarım yardımcı olur!

PHP bir bilimsel gösterimde sayı veya ondalık gösterimle birini ya görüntüleyen iki tarafında bir eşik, çünkü bu microtime() garip yukarı gösteriyor gibi görünüyor. Bunların her ikisi de teknik olarak "yüzer" olan (see documentation).

Bu eşik yerde 0.8 saniye ve 0.9 saniye arasında olduğunu görünüyor; en azından benim testleri sonucuna buydu. Aşağıdaki kodu kullanarak bilimsel gösterim gösterecektir:

$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . ($end4 - $start4) . '<br />';

Biz sleep(0.9) bizim bekleme süresini değiştirmek Ama eğer, bir ondalık sayı üretilir. Bu, ya da tüm sistemleri veya tesisler üzerindeki durum olmayabilir, ama bu en azından benim testleri ne olduğunu gösterdi.

Bu gibi sprintf() işlevini kullanarak bu kendinizi karşı olabilir:

$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . sprintf('%f', $end4 - $start4) . '<br />';

Bu her zaman bir ondalık sayı olarak zaman gösterecektir.