3v4l.org

run code in 300+ PHP versions simultaneously
<?php function pack_encode($val) { $str = ''; while ($val > 0) { $str .= chr($val & 0xFF); $val = $val >> 8; } // "/" json-encodes poorly and "=" is padding return str_replace( array('/', '='), array('_', ''), base64_encode($str) ); } function pack_decode($bin) { $str = base64_decode(str_replace('_', '/', $bin)); $val = 0; for ($i=0; $i<strlen($str); $i++) { $val |= (ord($str[$i]) << ($i * 8)); } return $val; } for ($i=0; $i<32; $i++) { $val = 1<<$i; $enc = pack_encode($val); $dec = pack_decode($enc); echo "$val => $enc => $dec\n"; } for ($i=1; $i < (1<<32); $i = $($i<<1)) { $enc = pack_encode($val); $dec = pack_decode($val); echo "$enc $dec $val\n"; }

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)
5.4.310.0200.06018.87
5.4.300.0300.07019.06
5.4.290.0270.06318.85
5.4.280.0270.04019.13
5.4.270.0300.06319.09
5.4.260.0200.06719.13
5.4.250.0230.07718.85
5.4.240.0230.07018.81
5.4.230.0270.05319.19
5.4.220.0300.07018.84
5.4.210.0200.05719.06
5.4.200.0270.07318.99
5.4.190.0300.06319.23
5.4.180.0270.05018.99
5.4.170.0200.06318.86
5.4.160.0230.07019.22
5.4.150.0230.05019.04
5.4.140.0130.04716.43
5.4.130.0170.07716.36
5.4.120.0270.06316.51
5.4.110.0200.06716.56
5.4.100.0270.05016.59
5.4.90.0230.07016.60
5.4.80.0200.07016.60
5.4.70.0230.06716.22
5.4.60.0200.04716.24
5.4.50.0200.04016.52
5.4.40.0230.04016.51
5.4.30.0270.06716.51
5.4.20.0230.07016.53
5.4.10.0230.07316.42
5.4.00.0270.03715.80
5.3.280.0270.06714.62
5.3.270.0230.05014.73
5.3.260.0100.06314.78
5.3.250.0200.03714.51
5.3.240.0200.07314.53
5.3.230.0330.05714.77
5.3.220.0230.07314.48
5.3.210.0300.06314.48
5.3.200.0230.05714.57
5.3.190.0270.06014.59
5.3.180.0330.05314.65
5.3.170.0200.05714.58
5.3.160.0230.04014.80
5.3.150.0200.06314.47
5.3.140.0200.07014.47
5.3.130.0200.07314.57
5.3.120.0230.07014.56
5.3.110.0230.05014.78
5.3.100.0230.07314.05
5.3.90.0230.06314.03
5.3.80.0270.04013.93
5.3.70.0230.07314.12
5.3.60.0200.06314.03
5.3.50.0270.07013.96
5.3.40.0270.06714.00
5.3.30.0200.07013.84
5.3.20.0270.07013.60
5.3.10.0200.04713.88
5.3.00.0130.04313.80
5.2.170.0330.05011.93
5.2.160.0200.03311.93
5.2.150.0200.03711.93
5.2.140.0200.03011.93
5.2.130.0200.05711.93
5.2.120.0200.03711.93
5.2.110.0130.06311.93
5.2.100.0170.04011.93
5.2.90.0170.06011.93
5.2.80.0270.03711.93
5.2.70.0200.06311.93
5.2.60.0230.05711.93
5.2.50.0130.05711.93
5.2.40.0170.05011.93
5.2.30.0170.05011.93
5.2.20.0170.06011.93
5.2.10.0170.05011.93
5.2.00.0200.05011.93
5.1.60.0200.03011.93
5.1.50.0200.05011.93
5.1.40.0200.05011.93
5.1.30.0170.04711.93
5.1.20.0130.05311.93
5.1.10.0170.03311.93
5.1.00.0170.05311.93
5.0.50.0070.03711.93
5.0.40.0170.03311.93
5.0.30.0100.04711.93
5.0.20.0130.03311.93
5.0.10.0100.04011.93
5.0.00.0170.05711.93
4.4.90.0100.03311.93
4.4.80.0030.03011.93
4.4.70.0130.03311.93
4.4.60.0130.03011.93
4.4.50.0100.03311.93
4.4.40.0070.05011.93
4.4.30.0100.03011.93
4.4.20.0030.03011.93
4.4.10.0070.03011.93
4.4.00.0070.05311.93
4.3.110.0100.03311.93
4.3.100.0130.02311.93
4.3.90.0130.03011.93
4.3.80.0130.04311.93
4.3.70.0030.04011.93
4.3.60.0130.02711.93
4.3.50.0070.02711.93
4.3.40.0100.03311.93
4.3.30.0100.01711.93
4.3.20.0070.03311.93
4.3.10.0000.02311.93
4.3.00.0030.01711.93

preferences:
142.25 ms | 1394 KiB | 7 Q