(PHP 7 >= 7.3.0, PHP 8)
hrtime — Devuelve el tiempo de alta resolución del sistema
Devuelve el tiempo de alta resolución del sistema, contado a partir de un punto arbitrario en el tiempo. La marca de tiempo proporcionada es monótona y no puede ser ajustada.
Devuelve un array de enteros en la forma [segundos, nanosegundos], si el
argumento as_number es falso. De lo contrario, los nanosegundos
son devueltos como int (plataformas de 64 bits) o como float
(plataformas de 32 bits).
Devuelve false en caso de error.
Ejemplo #1 Ejemplo de hrtime()
<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>Resultado del ejemplo anterior es similar a:
10444739687370679 Array ( [0] => 10444739 [1] => 687464812 )
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