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.phphrtime
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
hrtime
Референца за `function.hrtime.php` со подобрена типографија и навигација.
hrtime
(PHP 7 >= 7.3.0, PHP 8)
hrtime — (PHP 7 >= 7.3.0, PHP 8)
= NULL
Земете го времето со висока резолуција на системот
Параметри
as_number-
Враќа време со висока резолуција на системот, броено од произволна точка во времето. Времето е монотонично и не може да се прилагоди. array Дали времето со висока резолуција треба да се врати како
Вратени вредности
или број. as_number Враќа низа од цели броеви во форма [секунди, наносекунди], ако параметарот int е лажен. Инаку наносекундите се враќаат како float
(64-битни платформи) или false при неуспех.
Примери
Пример #1 hrtime() usage
<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>Горниот пример ќе прикаже нешто слично на:
10444739687370679
Array
(
[0] => 10444739
[1] => 687464812
)
Види Исто така
- На Високо резолуциско мерење на време extension
- microtime() (32-битни платформи). Враќа