How to get accurate ticks from a timer (high‑resolution timer) in PHP

1 Answer

0 votes
// Start timer (nanoseconds)
$start = hrtime(true);

// Do some work
for ($i = 0; $i < 1000000; $i++) {
    // simple loop
}

// Stop timer
$end = hrtime(true);

// Raw ticks (nanoseconds)
$ticks = $end - $start;

// Convert to time units
$nanoseconds  = $ticks;
$microseconds = $nanoseconds / 1_000;
$milliseconds = $nanoseconds / 1_000_000;
$seconds      = $nanoseconds / 1_000_000_000;

// Frequency (ticks per second)
$frequency = 1_000_000_000; // hrtime = 1 GHz resolution

// Print results
echo "Elapsed ticks (ns): $ticks\n";
echo "Elapsed ms: $milliseconds\n";
echo "Elapsed us: $microseconds\n";
echo "Elapsed seconds: $seconds\n";
echo "Timer frequency: $frequency Hz\n";



/*
run:

Elapsed ticks (ns): 3159310
Elapsed ms: 3.15931
Elapsed us: 3159.31
Elapsed seconds: 0.00315931
Timer frequency: 1000000000 Hz

*/

 



answered May 9 by avibootz
...