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();

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.2.00.0232.26151.16
7.1.70.0102.14648.82
7.1.60.0102.00449.09
7.1.50.0302.04349.26
7.1.00.0132.48754.21
7.0.200.4932.00345.48
7.0.140.0102.49053.96
7.0.120.0132.48054.03
7.0.100.0572.12750.36
7.0.90.0172.06050.57
7.0.80.0202.07050.36
7.0.70.0202.07750.40
7.0.60.2502.09750.42
7.0.50.0232.14050.61
7.0.40.0202.04350.40
7.0.30.0031.93350.47
7.0.20.0501.89050.46
7.0.10.0172.07050.55
7.0.00.0202.08050.50
5.6.280.0300.09785.38
5.6.250.0270.10785.09
5.6.240.0370.09085.09
5.6.230.0270.10385.00
5.6.220.0230.11085.11
5.6.210.0370.10385.03
5.6.200.0270.09785.50
5.6.190.0400.10085.60
5.6.180.0230.06085.58
5.6.170.0270.10385.64
5.6.160.0200.10785.52
5.6.150.0100.12785.42
5.6.140.0230.11085.41
5.6.130.0430.08385.57
5.6.120.0430.06085.59
5.6.110.0570.08385.59
5.6.100.0330.09085.48
5.6.90.0470.10085.55
5.6.80.0400.09084.91
5.6.70.0370.10384.86
5.6.60.0330.10084.79
5.6.50.0300.08084.94
5.6.40.0300.11384.89
5.6.30.0500.09384.88
5.6.20.0200.08084.84
5.6.10.0370.10784.83
5.6.00.0430.09384.82
5.5.380.0370.09084.86
5.5.370.0130.09784.86
5.5.360.0500.11784.82
5.5.350.0170.07084.89
5.5.340.0270.10785.39
5.5.330.0300.09085.39
5.5.320.0100.07385.25
5.5.310.0200.06085.38
5.5.300.0330.09785.24
5.5.290.0300.09085.39
5.5.280.0300.11785.36
5.5.270.0270.11085.33
5.5.260.0200.13085.26
5.5.250.0470.09384.92
5.5.240.0500.08384.79
5.5.230.0270.07384.75
5.5.220.0200.11384.62
5.5.210.0400.10084.76
5.5.200.0430.12784.69
5.5.190.0370.09384.70
5.5.180.0270.10384.62
5.5.160.0430.08784.62
5.5.150.0270.08084.71
5.5.140.0230.11084.61
5.5.130.0330.14384.72
5.5.120.0400.09784.68
5.5.110.0330.07384.74
5.5.100.0500.08784.42
5.5.90.0370.07784.55
5.5.80.0300.10084.51
5.5.70.0400.09384.63
5.5.60.0170.11384.57
5.5.50.0300.11084.55
5.5.40.0400.09384.46
5.5.30.0370.10384.60
5.5.20.0400.08384.55
5.5.10.0230.10084.44
5.5.00.0470.09384.41
5.4.450.0270.11783.82
5.4.440.0230.10083.63
5.4.430.0300.10383.68
5.4.420.0200.10783.77
5.4.410.0370.10083.64
5.4.400.0300.09383.45
5.4.390.0400.08383.44
5.4.380.0330.10383.45
5.4.370.0270.09383.43
5.4.360.0370.10083.45
5.4.350.0270.11083.55
5.4.340.0430.06383.43
5.4.320.0370.07383.41
5.4.310.0470.08383.46
5.4.300.0300.08083.29
5.4.290.0400.09783.65
5.4.280.0400.10783.61
5.4.270.0230.10383.49
5.4.260.0370.09383.61
5.4.250.0270.11083.29
5.4.240.0230.11083.43
5.4.230.0330.10083.57
5.4.220.0330.10383.57
5.4.210.0300.07083.44
5.4.200.0330.10783.39
5.4.190.0200.10383.28
5.4.180.0470.09083.42
5.4.170.0270.06083.41
5.4.160.0300.10083.56
5.4.150.0230.11083.49
5.4.140.0330.09380.82
5.4.130.0330.09080.79
5.4.120.0370.09380.63
5.4.110.0200.10080.77
5.4.100.0300.04780.85
5.4.90.0300.09080.89
5.4.80.0270.09380.80
5.4.70.0400.08780.88
5.4.60.0300.09380.84
5.4.50.0400.08780.83
5.4.40.0330.06080.71
5.4.30.0270.10080.70
5.4.20.0370.09080.70
5.4.10.0330.11080.74
5.4.00.0370.09380.24
5.3.290.0270.10377.68
5.3.280.0200.10377.63
5.3.270.0200.09377.68
5.3.260.0270.10377.60
5.3.250.0430.09377.51
5.3.240.0230.11077.59
5.3.230.0200.12077.54
5.3.220.0470.07777.55
5.3.210.0330.06077.51
5.3.200.0170.12077.50
5.3.190.0130.09777.49
5.3.180.0200.05377.66
5.3.170.0270.10777.52
5.3.160.0270.09377.69
5.3.150.0330.06377.50
5.3.140.0300.10777.63
5.3.130.0300.09777.54
5.3.120.0070.11377.62
5.3.110.0330.11077.48
5.3.100.0330.08777.11
5.3.90.0300.08777.05
5.3.80.0400.08377.04
5.3.70.0430.09376.98
5.3.60.0330.11076.92
5.3.50.0400.10376.96
5.3.40.0330.09076.89
5.3.30.0430.08777.63
5.3.20.0400.09376.75
5.3.10.0200.10776.60
5.3.00.0200.06076.58
5.2.170.0230.10074.52
5.2.160.0270.10074.64
5.2.150.0130.12074.72
5.2.140.0130.08374.79
5.2.130.0230.11074.68
5.2.120.0270.11774.65
5.2.110.0100.13074.62
5.2.100.0400.10074.70
5.2.90.0330.09374.64
5.2.80.0370.10074.54
5.2.70.0270.10374.64
5.2.60.0270.10074.63
5.2.50.0130.07774.73
5.2.40.0200.12074.59
5.2.30.0200.11774.59
5.2.20.0430.10374.56
5.2.10.0230.06375.11
5.2.00.0432.460140.96
5.1.60.0732.433185.89
5.1.50.0502.457186.01
5.1.40.0302.477185.92
5.1.30.0532.453186.11
5.1.20.0532.453186.17
5.1.10.0502.457185.98
5.1.00.0672.440186.06
5.0.50.0402.467184.56
5.0.40.0472.460184.18
5.0.30.0432.463184.20
5.0.20.0502.457184.05
5.0.10.0572.450183.95
5.0.00.0632.443184.02
4.4.90.0602.447181.82
4.4.80.0402.467181.95
4.4.70.0732.433181.89
4.4.60.0672.440181.94
4.4.50.0732.433181.94
4.4.40.0672.440181.91
4.4.30.0332.473181.89
4.4.20.0672.440181.95
4.4.10.0532.453181.91
4.4.00.0602.447181.89
4.3.110.0732.433181.82
4.3.100.0872.420181.78
4.3.90.0432.463181.84
4.3.80.0472.460181.82
4.3.70.0432.463181.80
4.3.60.0532.453181.76
4.3.50.0532.453181.85
4.3.40.0702.437181.82
4.3.30.0702.437180.54
4.3.20.0672.427180.44
4.3.10.0432.463180.54
4.3.00.0472.460180.38

preferences:
31.39 ms | 401 KiB | 5 Q