3v4l.org

run code in 300+ PHP versions simultaneously
<?php $digits = array(0,1,2,3,4,5,6,7,7,8,9,'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); $base = count($digits); function enc($val) use($digits, $base) { $str = ''; if (0 === $val) { return '0'; } if (0 > $val) { $str = '-'; $val = -$val; } while (0 < $val) { $str .= $digits[$val % $base]; $val = (int)($val / $base); } return $str; } function gdr_encode($val) { $bin = ''; while ($val > 0) { $bin .= chr($val & 0xFF); $val >>= 8; } return str_replace(array('/', '='), array('_', ''), base64_encode($bin)); } function gdr_decode($str) { $bin = base64_decode(str_replace('_', '/', $str)); $val = 0; for ($i=strlen($bin)-1; $i>=0; $i--) { $val |= ord($bin[$i]) << $i*8; } return $val; } if (!function_exists('json_encode')) { // crappy json_encode function that can handle our narrow input function json_encode($val) { if (is_string($val)) { return "\"$val\""; } if (is_int($val)) { return strval($val); } return "???"; } } $vals = array(0, 1, 99, 100, 255, 256, 999, 1000, 9999, 10000, 65535, 65536, 99999, 100000, 999999, 1000000, 4294967295, 4294967296); foreach ($vals as $val) { $enc = json_encode(gdr_encode($val)); $dec = json_encode(gdr_decode($enc)); $val = json_encode($val); $enc2 = json_encode(enc($val)); if (strlen($enc) > strlen($val)) { echo "$enc $val $enc2 WORSE\n"; } else if (strlen($enc) == strlen($val)) { echo "$enc $val $enc2 EQUAL\n"; } else { echo "$enc $val $enc2\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.0030.06719.09
5.4.300.0000.04318.86
5.4.290.0000.04719.24
5.4.280.0000.04018.98
5.4.270.0030.03719.13
5.4.260.0000.03718.98
5.4.250.0100.03319.05
5.4.240.0000.03718.86
5.4.230.0100.03018.97
5.4.220.0030.03719.07
5.4.210.0070.03019.19
5.4.200.0030.03319.21
5.4.190.0030.03318.93
5.4.180.0070.04719.30
5.4.170.0000.04318.86
5.4.160.0030.04019.14
5.4.150.0070.03319.22
5.4.140.0000.03716.31
5.4.130.0030.03016.31
5.4.120.0030.03016.35
5.4.110.0030.03316.37
5.4.100.0000.03316.52
5.4.90.0030.03316.35
5.4.80.0000.03716.31
5.4.70.0030.03716.44
5.4.60.0100.03016.56
5.4.50.0030.07016.48
5.4.40.0000.04316.54
5.4.30.0000.03716.53
5.4.20.0030.03016.16
5.4.10.0030.03316.49
5.4.00.0000.03715.73
5.3.290.0030.06314.67
5.3.280.0000.03714.49
5.3.270.0000.03714.52
5.3.260.0000.03714.69
5.3.250.0000.03714.83
5.3.240.0000.03714.58
5.3.230.0070.03014.50
5.3.220.0030.04314.73
5.3.210.0000.03714.54
5.3.200.0030.03314.66
5.3.190.0000.04714.57
5.3.180.0070.03014.73
5.3.170.0000.03714.56
5.3.160.0030.03714.72
5.3.150.0000.04014.54
5.3.140.0000.07014.43
5.3.130.0000.03714.57
5.3.120.0030.04014.55
5.3.110.0000.03714.63
5.3.100.0000.03713.94
5.3.90.0030.06014.12
5.3.80.0100.03313.92
5.3.70.0070.07014.04
5.3.60.0030.04014.12
5.3.50.0070.07014.05
5.3.40.0030.07014.07
5.3.30.0070.07014.03
5.3.20.0030.07713.77
5.3.10.0030.07013.66
5.3.00.0070.06713.65
5.2.170.0000.06312.12
5.2.160.0070.03312.12
5.2.150.0030.05012.12
5.2.140.0030.04312.12
5.2.130.0030.05312.12
5.2.120.0100.05712.12
5.2.110.0000.04312.12
5.2.100.0070.05712.12
5.2.90.0030.04712.12
5.2.80.0000.04312.12
5.2.70.0000.04712.12
5.2.60.0030.05712.12
5.2.50.0000.06312.12
5.2.40.0100.05312.12
5.2.30.0030.04712.12
5.2.20.0030.05712.12
5.2.10.0030.06012.12
5.2.00.0000.03712.12
5.1.60.0030.05012.12
5.1.50.0000.05312.12
5.1.40.0000.04312.12
5.1.30.0030.04012.12
5.1.20.0030.03712.12
5.1.10.0000.03012.12
5.1.00.0030.05712.12
5.0.50.0000.03312.12
5.0.40.0000.05012.12
5.0.30.0070.05312.12
5.0.20.0030.04012.12
5.0.10.0030.04312.12
5.0.00.0030.06312.12
4.4.90.0000.02712.12
4.4.80.0000.03712.12
4.4.70.0030.03712.12
4.4.60.0000.04012.12
4.4.50.0030.03312.12
4.4.40.0000.04012.12
4.4.30.0030.03012.12
4.4.20.0030.03312.12
4.4.10.0000.03312.12
4.4.00.0000.05312.12
4.3.110.0100.01712.12
4.3.100.0030.01712.12
4.3.90.0070.01312.12
4.3.80.0000.05012.12
4.3.70.0000.02312.12
4.3.60.0070.02012.12
4.3.50.0000.02312.12
4.3.40.0000.03712.12
4.3.30.0000.02012.12
4.3.20.0030.01312.12
4.3.10.0070.01712.12
4.3.00.0000.02012.12

preferences:
139.18 ms | 1394 KiB | 7 Q