hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtimeDevuelve el tiempo de alta resolución del sistema

Descripción

hrtime(bool $as_number = false): array|int|float|false

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.

Parámetros

as_number

Si el tiempo de alta resolución debe ser devuelto como array o como número.

Valores devueltos

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.

Ejemplos

Ejemplo #1 Ejemplo de hrtime()

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

El resultado del ejemplo sería algo similar a:

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

Ver también

add a note

User Contributed Notes 1 note

up
66
SenseiSimple
6 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