3v4l.org

run code in 300+ PHP versions simultaneously
<?php function bytesToSize($bytes, $precision = 2) { $symbols = array('B', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb'); $exp = (int)floor(log($bytes) / log(1024)); return sprintf('%.'. $precision .'f '. $symbols[$exp], $bytes / pow(1024, floor($exp))); } function mem() { return bytesToSize(memory_get_usage(true)); } function test($msg, $test) { $t = microtime(true); $test($msg); echo $msg .': <b>'. sprintf('%.6f', microtime(true) - $t) .'</b>'. PHP_EOL; } $array = range(0, 30000); test('foreach', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; foreach ($array as $v) { $b = $v; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('foreach ref', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; foreach ($array as &$v) { $b = $v; } unset($v); echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('for', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; $so = count($array); for ($i = 0; $i < $so; ++$i) { $b = $array[$i]; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('while each -> list', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; while (list($k, $v) = each($array)) { $b =$v; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); echo 'Memory peak: ' . round(memory_get_peak_usage() / 1048576, 3) .PHP_EOL;

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.1.70.0030.01019.56
7.1.60.0100.02919.70
7.1.50.0140.02418.67
7.1.00.0030.08724.50
7.0.200.0240.02417.80
7.0.140.0100.08024.30
7.0.110.0870.07322.87
7.0.100.0930.06322.79
7.0.90.0100.09022.75
7.0.80.0070.08022.70
7.0.70.0070.09322.88
7.0.60.1230.08722.88
7.0.50.0230.10722.76
7.0.40.0100.08720.07
7.0.30.0070.09720.07
7.0.20.0100.05020.05
7.0.10.0100.08019.96
7.0.00.0200.07719.99
5.6.280.0130.09329.68
5.6.260.0330.12329.52
5.6.250.0070.07329.45
5.6.240.0200.09729.42
5.6.230.0200.10329.41
5.6.220.0100.10729.46
5.6.210.0100.14029.38
5.6.200.0170.07729.42
5.6.190.0130.12729.39
5.6.180.0170.09029.44
5.6.170.0170.08729.63
5.6.160.0230.09729.37
5.6.150.0200.09329.34
5.6.140.0230.10729.47
5.6.130.0230.09329.41
5.6.120.0000.11729.25
5.6.110.0100.07329.46
5.6.100.0170.05329.62
5.6.90.0100.05729.62
5.6.80.0130.05328.81
5.6.70.0000.06728.76
5.6.60.0170.10328.80
5.6.50.0070.06028.83
5.6.40.0030.07328.99
5.6.30.0070.06028.78
5.6.20.0100.05728.70
5.6.10.0170.05028.69
5.6.00.0130.05028.66
5.5.380.0130.07726.43
5.5.370.0130.09026.46
5.5.360.0230.07026.43
5.5.350.0100.08726.34
5.5.340.0130.08026.71
5.5.330.0130.11326.61
5.5.320.0100.10726.93
5.5.310.0170.09726.69
5.5.300.0130.09026.70
5.5.290.0200.09326.91
5.5.280.0170.10026.78
5.5.270.0070.06726.79
5.5.260.0100.06026.91
5.5.250.0130.05326.50
5.5.240.0100.06026.25
5.5.230.0130.07726.09
5.5.220.0130.10026.30
5.5.210.0100.06026.02
5.5.200.0130.05326.06
5.5.190.0070.10326.27
5.5.180.0000.06726.27
5.5.160.0030.08726.18
5.5.150.0170.10026.05
5.5.140.0300.03326.23
5.5.130.0130.06026.00
5.5.120.0100.08026.25
5.5.110.0070.06026.18
5.5.100.0070.05725.92
5.5.90.0030.05726.17
5.5.80.0100.05725.92
5.5.70.0100.07726.05
5.5.60.0100.04725.92
5.5.50.0070.05725.92
5.5.40.0030.06726.14
5.5.30.0070.10725.94
5.5.20.0100.08026.03
5.5.10.0200.10026.07
5.5.00.0070.09025.89
5.4.450.0100.11028.03
5.4.440.0030.07028.30
5.4.430.0030.06728.19
5.4.420.0030.10028.20
5.4.410.0030.06327.95
5.4.400.0100.05727.76
5.4.390.0130.08727.72
5.4.380.0130.04727.90
5.4.370.0030.06027.89
5.4.360.0030.08027.67
5.4.350.0100.05727.72
5.4.340.0070.06327.98
5.4.320.0070.06027.76
5.4.310.0100.06327.91
5.4.300.0030.07027.75
5.4.290.0070.06027.75
5.4.280.0100.05327.76
5.4.270.0030.06327.75
5.4.260.0070.06027.66
5.4.250.0030.06027.66
5.4.240.0070.05027.66
5.4.230.0000.08027.78
5.4.220.0100.04727.87
5.4.210.0070.07327.94
5.4.200.0070.05727.71
5.4.190.0130.10327.77
5.4.180.0070.06027.87
5.4.170.0100.05728.07
5.4.160.0030.10327.73
5.4.150.0030.09327.73
5.4.140.0170.09725.22
5.4.130.0100.11025.19
5.4.120.0070.09325.18
5.4.110.0070.08725.26
5.4.100.0100.10025.18
5.4.90.0100.08325.16
5.4.80.0100.10025.15
5.4.70.0030.08725.02
5.4.60.0170.10725.00
5.4.50.0100.07725.38
5.4.40.0200.06325.04
5.4.30.0170.08325.23
5.4.20.0100.09325.04
5.4.10.0070.09325.01
5.4.00.0070.11324.71
5.3.290.0070.08023.34
5.3.280.0030.06723.26
5.3.270.0170.07323.16
5.3.260.0130.10022.98
5.3.250.0130.07723.14
5.3.240.0200.08723.22
5.3.230.0070.05723.13
5.3.220.0070.09323.11
5.3.210.0070.07723.17
5.3.200.0100.06023.08
5.3.190.0130.08723.25
5.3.180.0030.10323.08
5.3.170.0100.11023.25
5.3.160.0100.06723.09
5.3.150.0100.07323.34
5.3.140.0270.11723.10
5.3.130.0130.11023.22
5.3.120.0100.10323.07
5.3.110.0070.11023.17
5.3.100.0130.10022.55
5.3.90.0030.11022.69
5.3.80.0070.10022.49
5.3.70.0100.09022.47
5.3.60.0100.08722.45
5.3.50.0070.10022.40
5.3.40.0030.11722.50
5.3.30.0070.08722.34
5.3.20.0270.09022.30
5.3.10.0070.10722.10
5.3.00.0130.08022.13
5.2.170.0000.06011.12
5.2.160.0030.06011.10
5.2.150.0070.05711.14
5.2.140.0030.05311.10
5.2.130.0030.06311.19
5.2.120.0100.05711.12
5.2.110.0070.05011.12
5.2.100.0000.06311.25
5.2.90.0000.05711.13
5.2.80.0030.06011.09
5.2.70.0170.05311.18
5.2.60.0070.08011.03
5.2.50.0200.02711.04
5.2.40.0200.05011.07
5.2.30.0030.06011.06
5.2.20.0030.05011.04
5.2.10.0000.04010.88
5.2.00.0070.06010.72
5.1.60.0030.04010.08
5.1.50.0030.04710.17
5.1.40.0000.0309.96
5.1.30.0030.05310.41
5.1.20.0070.04710.45
5.1.10.0000.06310.06
5.1.00.0000.05310.07
5.0.50.0070.0379.76
5.0.40.0000.0439.76
5.0.30.0030.0609.76
5.0.20.0130.0339.76
5.0.10.0030.0309.76
5.0.00.0100.0609.76
4.4.90.0030.0339.76
4.4.80.0000.0379.76
4.4.70.0070.0179.76
4.4.60.0030.0379.76
4.4.50.0000.0339.76
4.4.40.0000.0309.76
4.4.30.0030.0309.76
4.4.20.0030.0279.76
4.4.10.0030.0339.76
4.4.00.0030.0539.76
4.3.110.0000.0379.76
4.3.100.0000.0339.76
4.3.90.0030.0309.76
4.3.80.0030.0439.76
4.3.70.0000.0339.76
4.3.60.0030.0309.76
4.3.50.0100.0309.76
4.3.40.0030.0309.76
4.3.30.0000.0339.76
4.3.20.0000.0339.76
4.3.10.0000.0279.76
4.3.00.0030.0309.76

preferences:
34.99 ms | 400 KiB | 5 Q