PHP 8.4.2 Released!

hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtimeRenvoie le temps de haute résolution du système

Description

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

Renvoie le temps de haute résolution du système, compté à partir d'un point arbitraire dans le temps. L'horodatage fourni est monotone et ne peut pas être ajusté.

Liste de paramètres

as_number

Si le temps de haute résolution doit être renvoyé sous forme de array ou de nombre.

Valeurs de retour

Renvoie un tableau d'entiers sous la forme [secondes, nanosecondes], si le paramètre as_number est faux. Sinon les nanosecondes sont renvoyées sous forme de int (plateformes 64 bits) ou de float (plateformes 32 bits). Renvoie false en cas d'échec.

Exemples

Exemple #1 Exemple de hrtime()

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

Résultat de l'exemple ci-dessus est similaire à :

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

Voir aussi

add a note

User Contributed Notes 1 note

up
65
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