3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('N', 1000000); $h = array_fill(0, N, 0); function pushDown($pos, $n) { global $h; while (2 * $pos + 1 < $n) { $j = 2 * $pos + 1; if ($j + 1 < $n && $h[$j + 1] > $h[$j]) $j++; if ($h[$pos] >= $h[$j]) break; $t = $h[$pos]; $h[$pos] = $h[$j]; $h[$j] = $t; $pos = $j; } } function main() { global $h; $start = round(microtime(true) * 1000); for ($i = 0; $i < N; $i++) { $h[$i] = $i; } for ($i = (int) (N / 2); $i >= 0; $i--) { pushDown($i, N); } $n = N; while ($n > 1) { $n--; $t = $h[0]; $h[0] = $h[$n]; $h[$n] = $t; pushDown(0, $n); } foreach ($h as $i => $v) { if ($i !== $v) { echo "Sorting failed at index $i!\n"; return; } } $finish = round(microtime(true) * 1000); $delta = $finish - $start; echo "Done in $delta\n"; } main();
Output for 7.2.0
Done in 2254
Output for 7.1.7
Done in 2136
Output for 7.1.6
Done in 1973
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0, 7.0.12 - 7.0.20, 7.1.0 - 7.1.5

Process exited with code 137.
Output for 7.0.10
Done in 2040
Output for 7.0.9
Done in 1971
Output for 7.0.8
Done in 1981
Output for 7.0.4, 7.0.7
Done in 1991
Output for 7.0.6
Done in 2019
Output for 7.0.5
Done in 2048
Output for 7.0.3
Done in 1885
Output for 7.0.2
Done in 1845
Output for 7.0.1
Done in 1975
Output for 7.0.0
Done in 2002
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 72 bytes) in /in/ZEJ60 on line 5
Process exited with code 255.
Output for 5.2.1 - 5.2.17, 5.3.0 - 5.3.29
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 71 bytes) in /in/ZEJ60 on line 5
Process exited with code 255.

preferences:
178.72 ms | 402 KiB | 217 Q