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