// 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
*/