3v4l.org

run code in 300+ PHP versions simultaneously
<?php function formatMemoryUsage($usage) { $unit = array(' B', 'kB', 'MB', 'GB', 'TB'); $factor = floor((strlen($usage) - 1) / 3); return sprintf('%.2f %s (%d bytes) ', $usage / pow(1024, $factor), $unit[$factor], $usage); } for($size = 1000; $size < 100000; $size *= 2) { echo PHP_EOL . '> Testing size: ' . number_format($size) . PHP_EOL; echo ' Array()' . PHP_EOL; for($s = microtime(true), $m = memory_get_usage(true), $container = Array(), $i = 0; $i < $size; $i++) $container[$i] = null; echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL; $s = microtime(true); foreach ($container as $key => $value) { $void = $value; } echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL; unset($container); echo ' SplFixedArray()' . PHP_EOL; for($s = microtime(true), $m = memory_get_usage(true), $container = new SplFixedArray($size), $i = 0; $i < $size; $i++) $container[$i] = null; echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL; $s = microtime(true); foreach ($container as $key => $value) { $void = $value; } echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL; unset($container); echo ' SplFixedArray()' . PHP_EOL; for($s = microtime(true), $m = memory_get_usage(true), $container = new SplFixedArray($size), $i = 0; $i < $size; $i++) $container[$i] = null; echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL; $s = microtime(true); foreach ($container as $key => $value) { $void = $value; } echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL; unset($container); echo ' SplFixedArray()' . PHP_EOL; for($s = microtime(true), $m = memory_get_usage(true), $container = new SplFixedArray($size), $i = 0; $i < $size; $i++) $container[$i] = null; echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL; $s = microtime(true); foreach ($container as $key => $value) { $void = $value; } echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL; unset($container); }

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.3.10.0070.03518.67
7.3.00.0080.03218.80
7.2.130.0050.03419.05
7.2.120.0040.03719.23
7.2.110.0050.03218.96
7.2.100.0110.02819.03
7.2.90.0050.03919.11
7.2.80.0050.03619.04
7.2.70.0070.03418.91
7.2.60.0070.03319.06
7.2.50.0080.03018.79
7.2.40.0050.03519.10
7.2.30.0030.03818.94
7.2.20.0060.03319.06
7.2.10.0100.03118.86
7.2.00.0070.03320.00
7.1.250.0070.06217.81
7.1.70.0090.02119.03
7.1.60.0030.06619.43
7.1.50.0070.05718.50
7.1.00.0030.09724.64
7.0.200.0200.03017.87
7.0.140.0100.11324.46
7.0.70.5770.06023.07
7.0.60.0100.11323.09
7.0.50.0100.11320.91
7.0.40.0070.11021.89
7.0.30.0570.09321.95
7.0.20.0300.10021.95
7.0.10.0230.11021.78
7.0.00.0130.08321.89
5.6.210.0170.15729.73
5.6.200.0200.13727.39
5.6.190.0100.13029.59
5.6.180.0270.15029.64
5.6.170.0370.15029.59
5.6.160.0100.11029.73
5.6.150.0030.11027.33
5.6.140.0030.12327.48
5.6.130.0300.10327.49
5.6.120.0170.13330.11
5.6.110.0170.13030.38
5.6.100.0170.16030.29
5.6.90.0200.16030.29
5.6.80.0100.15329.67
5.6.70.0030.12029.62
5.5.350.0070.17729.77
5.5.340.0000.12327.21
5.5.330.0230.15029.40
5.5.320.0130.13729.20
5.5.310.0230.17029.39
5.5.300.0100.16327.32
5.5.290.0030.11327.29
5.5.280.0130.11730.13
5.5.270.0100.12030.10
5.5.260.0170.15730.14
5.5.250.0200.17329.80
5.5.240.0130.15329.54
5.4.450.0700.15028.76
5.4.440.0800.25028.77
5.4.430.0830.16328.64
5.4.420.1070.16728.44
5.4.410.0200.14728.23
5.4.400.0730.17028.21
5.4.390.0230.19728.35
5.4.380.0270.17028.04
5.4.370.0100.13728.00
5.4.360.0100.12727.96
5.4.350.0140.11221.13
5.4.340.0110.10921.12
5.4.320.0130.11421.61
5.4.310.0120.12321.61
5.4.300.0080.11421.38
5.4.290.0110.11221.61
5.4.280.0070.11721.51
5.4.270.0110.11521.51
5.4.260.0070.11521.51
5.4.250.0100.13321.51
5.4.240.0200.19328.13
5.4.230.0270.15728.28
5.4.220.0270.24028.27
5.4.210.0100.25028.13
5.4.200.0070.21028.07
5.4.190.0200.18728.15
5.4.180.0130.22728.06
5.4.170.0030.18728.18
5.4.160.0070.21327.90
5.4.150.0000.0336.92
5.4.140.0130.19325.76
5.4.130.0270.24725.72
5.4.120.0230.16325.62
5.4.110.0170.21725.74
5.4.100.0170.24325.83
5.4.90.0170.19325.63
5.4.80.0270.25025.68
5.4.70.0200.25025.84
5.4.60.0070.20025.63
5.4.50.0230.18725.79
5.4.40.0300.18025.64
5.4.30.0100.16025.64
5.4.20.0130.16025.72
5.4.10.0200.18325.82
5.4.00.0200.16025.15
5.3.290.0100.13221.81
5.3.280.0230.17723.83
5.3.270.0170.19323.84
5.3.260.0030.21323.62
5.3.250.0270.23723.75
5.3.240.0130.21723.61
5.3.230.0200.21723.50
5.3.220.0130.20723.80
5.3.210.0200.27323.67
5.3.200.0130.20323.71
5.3.190.0230.20323.91
5.3.180.0030.27723.65
5.3.170.0270.26723.55
5.3.160.0100.24723.77
5.3.150.0130.21323.89
5.3.140.0100.19723.80
5.3.130.0170.22323.79
5.3.120.0230.26723.88
5.3.110.0100.22023.89
5.3.100.0370.18323.27
5.3.90.0270.21023.26
5.3.80.0270.22723.03
5.3.70.0230.17723.19
5.3.60.0130.23723.27
5.3.50.0130.19322.99
5.3.40.0200.23022.87
5.3.30.0170.24323.07
5.3.20.0230.19022.96
5.3.10.0300.23722.70
5.3.00.0170.20722.83
5.2.170.0130.03711.61
5.2.160.0100.04011.32
5.2.150.0170.03711.38
5.2.140.0100.05311.38
5.2.130.0100.05011.39
5.2.120.0130.03311.37
5.2.110.0100.05311.43
5.2.100.0030.06311.53
5.2.90.0000.05011.52
5.2.80.0030.04711.66
5.2.70.0100.05011.59
5.2.60.0070.04311.24
5.2.50.0170.04711.41
5.2.40.0130.03311.27
5.2.30.0100.05011.15
5.2.20.0000.05711.39
5.2.10.0070.05311.39
5.2.00.0030.04310.89
5.1.60.0000.04310.27
5.1.50.0070.04010.19
5.1.40.0130.02710.36
5.1.30.0100.03710.50
5.1.20.0030.04710.42
5.1.10.0070.03310.37
5.1.00.0100.03710.39
5.0.50.0000.0338.86
5.0.40.0030.0278.54
5.0.30.0070.0478.55
5.0.20.0000.0308.57
5.0.10.0070.0238.45
5.0.00.0030.0408.29
4.4.90.0000.0276.92
4.4.80.0070.0276.92
4.4.70.0030.0206.92
4.4.60.0030.0236.92
4.4.50.0070.0276.92
4.4.40.0030.0336.92
4.4.30.0000.0336.92
4.4.20.0000.0336.92
4.4.10.0000.0236.92
4.4.00.0000.0406.92
4.3.110.0030.0376.92
4.3.100.0070.0176.92
4.3.90.0070.0176.92
4.3.80.0000.0336.92
4.3.70.0000.0236.92
4.3.60.0000.0236.92
4.3.50.0030.0236.92
4.3.40.0070.0276.92
4.3.30.0070.0176.92
4.3.20.0000.0276.92
4.3.10.0100.0136.92
4.3.00.0100.0237.26

preferences:
38.86 ms | 401 KiB | 5 Q