CakeFest 2024: The Official CakePHP Conference

hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtimeYüksek çözünürlüklü sistem zamanını döndürür

Açıklama

hrtime(bool $sayı_olarak = false): array|int|float|false

Zaman içinde rastgele bir noktadan itibaren sayılan, sistemin yüksek çözünürlüklü zamanını döndürür. Teslim edilen zaman damgası arttırılamaz, eksiltilemez ve ayarlanamaz.

Bağımsız Değişkenler

sayı_olarak

Yüksek çözünürlüklü zamanı bir sayı olarak (true) veya bir dizi olarak (false) döndürülmek için kullanılır.

Dönen Değerler

sayı_olarak bağımsız değişkeninde false aktarılmışsa [saniye, nanosaniye] biçiminde bir tamsayı dizisi, true aktarılmışsa nanosaniye cinsinden zaman 64 bitlik sistemlerde int, 32 bitlik sistemlerde float türünde bir sayı olarak döner. Başarısızlık durumunda false döner.

Örnekler

Örnek 1 - hrtime() örneği

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
62
SenseiSimple
5 years ago
This function is particularly necessary on VMs running on KVM, XEN (openstack, AWS EC2, etc) when timing execution times.

On these platforms which lack vDSO the common method of using time() or microtime() can dramatically increase CPU/execution time due to the context switching from userland to kernel when running the `gettimeofday()` system call.

The common pattern is:
<?php
$time
= -microtime(true);
sleep(5);
$end = sprintf('%f', $time += microtime(true));
?>

Substituted as:
<?php
$start
=hrtime(true);
sleep(5);
$end=hrtime(true);
$eta=$end-$start;

echo
$eta/1e+6; //nanoseconds to milliseconds
//5000.362419

//OR simply

$eta=-hrtime(true);
sleep(5);
$eta+=hrtime(true);

echo
$eta/1e+6; //nanoseconds to milliseconds
//5000.088229
?>

There is also the new StopWatch class http://php.net/manual/en/class.hrtime-stopwatch.php
To Top