3v4l.org

run code in 300+ PHP versions simultaneously
<?php class ValueEncoder { public function encode($value) { $result = urlencode($value); return $result; } } class ValueDecoder { public function decode($value) { $result = urldecode($value); return $result; } } class RefEncoder { public function encode(&$value) { $value = urlencode($value); } } class RefDecoder { public function decode(&$value) { $value = urldecode($value); } } function genData() { return str_repeat('test', 1000000); } function valueTranscode() { $data = genData(); $encoder = new ValueEncoder(); $decoder = new ValueDecoder(); $data = $encoder->encode($data); $data = $decoder->decode($data); $data = strlen($data); } function refTranscode() { $data = genData(); $encoder = new RefEncoder(); $decoder = new RefDecoder(); $encoder->encode($data); $decoder->decode($data); $data = strlen($data); } $isRef = isset($argv[1]) && 'ref' === $argv[1]; echo ($isRef ? 'Ref: ' : 'Value: '); $s = microtime(true); for ($i = 0; $i < 20; ++$i) { if ($isRef) { refTranscode(); } else { valueTranscode(); } } $d = microtime(true) - $s; echo number_format($d, 2) . ' s, '; #echo number_format(memory_get_peak_usage(true)/1000/1000,2) . ' MB'. PHP_EOL; echo (!$isRef ? 'Ref: ' : 'Value: '); $s = microtime(true); for ($i = 0; $i < 20; ++$i) { if (!$isRef) { refTranscode(); } else { valueTranscode(); } } $d = microtime(true) - $s; echo number_format($d, 2) . ' s, ';

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.4.00.2660.79222.72
7.3.120.2460.53122.42
7.3.110.2620.85022.32
7.3.100.2760.83722.34
7.3.90.2220.63722.56
7.3.80.2180.55922.45
7.3.70.2430.59522.55
7.3.60.2220.54622.62
7.3.50.2460.75522.46
7.3.40.2460.63522.50
7.3.30.2250.72322.40
7.3.20.0960.62424.18
7.3.10.1570.60524.24
7.3.00.2260.54324.45
7.2.250.2590.82322.70
7.2.240.2550.81922.61
7.2.230.2360.57122.97
7.2.220.1990.73122.55
7.2.210.2090.71422.66
7.2.200.1960.61122.76
7.2.190.2030.58522.63
7.2.180.2360.53922.73
7.2.170.1830.68122.70
7.2.160.2420.76122.82
7.2.150.0960.53724.71
7.2.140.1030.64424.46
7.2.130.1840.53324.63
7.2.120.2230.50424.61
7.2.110.2320.56424.71
7.2.100.2250.60624.72
7.2.90.1280.58424.65
7.2.80.1410.56424.73
7.2.70.2700.62224.65
7.2.60.2200.50424.75
7.2.50.2410.63924.70
7.2.40.2340.64724.63
7.2.30.1790.58924.76
7.2.20.2310.66224.67
7.2.10.2160.53824.61
7.2.00.1410.58225.56
7.1.330.0960.87623.66
7.1.320.1030.75823.80
7.1.310.1360.72223.39
7.1.300.0830.66023.64
7.1.290.1230.76123.79
7.1.280.1330.48823.59
7.1.270.1030.80423.29
7.1.260.1130.69723.76
7.1.250.1850.63223.64
7.1.240.1000.66723.41
7.1.230.1030.78623.61
7.1.220.1130.76423.60
7.1.210.1100.60823.32
7.1.200.0830.52323.46
7.1.190.1060.54523.68
7.1.180.1090.74323.57
7.1.170.1120.82323.43
7.1.160.1230.64923.79
7.1.150.1030.53023.30
7.1.140.1160.74623.43
7.1.130.0970.69623.63
7.1.120.0900.49923.47
7.1.110.1090.61223.63
7.1.100.1060.82723.73
7.1.90.1200.80823.38
7.1.80.1020.52823.56
7.1.70.0700.56124.36
7.1.60.1100.52624.39
7.1.50.0980.62924.30
7.1.40.1200.67823.63
7.1.30.1160.83623.38
7.1.20.1230.67323.53
7.1.10.1100.74723.46
7.1.00.0830.69426.74
7.0.330.1100.62723.25
7.0.320.0950.57523.31
7.0.310.1000.76623.30
7.0.300.1160.72823.21
7.0.290.0930.84323.41
7.0.280.1030.80423.48
7.0.270.1000.58923.31
7.0.260.1190.55023.01
7.0.250.1260.65523.28
7.0.240.1160.58822.98
7.0.230.1070.74923.09
7.0.220.1490.60623.05
7.0.210.1230.76323.42
7.0.200.1240.49123.94
7.0.190.1330.77423.14
7.0.180.1330.72123.35
7.0.170.1260.53123.07
7.0.160.1300.83823.01
7.0.150.0930.55323.14
7.0.140.0760.71926.60
7.0.130.0960.78723.45
7.0.120.1130.51123.00
7.0.110.1030.78123.02
7.0.100.1060.78323.31
7.0.90.1000.79623.43
7.0.80.1230.74123.32
7.0.70.0930.77323.36
7.0.60.1150.55125.46
7.0.50.1000.66324.39
7.0.40.1310.60224.37
7.0.30.3280.50824.33
7.0.20.3030.66924.41
7.0.10.1200.67024.47
7.0.00.1100.65824.35
5.6.400.0100.81125.66
5.6.390.0130.82125.80
5.6.380.0170.60625.67
5.6.370.0200.57726.17
5.6.360.0130.60725.67
5.6.350.0070.80225.83
5.6.340.0170.82725.68
5.6.330.0100.84526.01
5.6.320.0130.51225.72
5.6.310.0200.66925.73
5.6.300.0170.60226.06
5.6.290.0100.76126.14
5.6.280.0080.74329.72
5.6.270.0130.58825.93
5.6.260.0070.61925.80
5.6.250.0130.57925.95
5.6.240.0100.82625.91
5.6.230.0130.87125.92
5.6.220.0100.57625.62
5.6.210.0250.67930.90
5.6.200.0150.54327.79
5.6.190.0120.56128.90
5.6.180.1420.69128.80
5.6.170.0390.72928.86
5.6.160.0180.64028.82
5.6.150.0130.58027.72
5.6.140.0150.58129.63
5.6.130.0180.59427.71
5.6.120.0130.57028.96
5.6.110.0170.71429.18
5.6.100.0220.68831.20
5.6.90.0150.71229.13
5.6.80.0070.61228.96
5.6.70.0200.80325.93
5.6.60.0170.69725.97
5.6.50.0100.90325.54
5.6.40.0100.78825.70
5.6.30.0130.58225.57
5.6.20.0200.88125.81
5.6.10.0170.61425.52
5.6.00.0230.83725.61
5.5.380.0230.85425.67
5.5.370.0130.85625.76
5.5.360.0230.63325.56
5.5.350.0380.61528.88
5.5.340.0150.67327.46
5.5.330.0170.73328.95
5.5.320.0500.58728.79
5.5.310.0420.71628.94
5.5.300.0170.51827.74
5.5.290.0130.65027.67
5.5.280.0080.59229.05
5.5.270.0130.72329.16
5.5.260.0120.61229.05
5.5.250.0270.73329.04
5.5.240.3450.55628.70
5.5.230.0170.80825.70
5.5.220.0130.65825.83
5.5.210.0130.60325.61
5.5.200.0130.79925.48
5.5.190.0170.65726.07
5.5.180.0170.58425.78
5.5.170.0260.74925.53
5.5.160.0230.64225.42
5.5.150.0130.58625.78
5.5.140.0100.68625.94
5.5.130.0200.75225.88
5.5.120.0240.66625.86
5.5.110.0170.61625.89
5.5.100.0270.55225.90
5.5.90.0230.65725.78
5.5.80.0170.82325.69
5.5.70.0220.60825.88
5.5.60.0190.58125.46
5.5.50.0200.53725.86
5.5.40.0230.60025.93
5.5.30.0190.62225.82
5.5.20.0230.65025.83
5.5.10.0170.65925.35
5.5.00.0100.92225.37
5.4.450.0100.57327.50
5.4.440.0100.72127.24
5.4.430.0120.69027.81
5.4.420.0150.56527.80
5.4.410.0130.60027.72
5.4.400.0120.56530.54
5.4.390.0180.60727.58
5.4.380.0100.72627.24
5.4.370.0120.71429.11
5.4.360.0820.66426.87
5.4.350.0150.71327.20
5.4.340.0080.63626.95
5.4.330.0230.70722.70
5.4.320.0160.54127.37
5.4.310.0170.58529.45
5.4.300.0280.66026.95
5.4.290.0080.57929.43
5.4.280.0250.60926.66
5.4.270.0130.60826.92
5.4.260.0100.60627.67
5.4.250.0100.60627.12
5.4.240.0100.62627.78
5.4.230.0120.60627.43
5.4.220.0100.53927.41
5.4.210.0130.51126.88
5.4.200.0060.53427.76
5.4.190.0100.52326.88
5.4.180.0080.55127.52
5.4.170.0120.73027.29
5.4.160.0080.65727.13
5.4.150.0120.68027.60
5.4.140.0050.67425.85
5.4.130.0120.63925.55
5.4.120.0100.65828.30
5.4.110.0080.56629.61
5.4.100.0050.62825.73
5.4.90.0580.59226.06
5.4.80.0090.54725.64
5.4.70.0150.63726.23
5.4.60.0080.63525.88
5.4.50.0080.66925.62
5.4.40.0130.69625.54
5.4.30.0650.61826.00
5.4.20.0120.56726.19
5.4.10.0120.61626.05
5.4.00.0120.69226.02
5.3.290.0130.55524.57
5.3.280.0070.60926.93
5.3.270.0110.48327.06
5.3.260.0120.53724.96
5.3.250.0100.56425.34
5.3.240.0100.56124.95
5.3.230.0120.48824.29
5.3.220.0130.62524.35
5.3.210.0130.50424.97
5.3.200.0150.46924.52
5.3.190.0160.47424.77
5.3.180.0080.50524.58
5.3.170.0150.61224.73
5.3.160.0120.56025.10
5.3.150.0070.55124.53
5.3.140.0120.54224.54
5.3.130.0100.45324.68
5.3.120.0050.43026.38
5.3.110.0080.52324.55
5.3.100.0080.55524.68
5.3.90.0130.58824.02
5.3.80.0070.54024.06
5.3.70.0110.44727.43
5.3.60.0070.59424.82
5.3.50.0140.44524.20
5.3.40.0080.46724.70
5.3.30.0100.52924.28
5.3.20.0070.42724.09
5.3.10.0070.41424.60
5.3.00.0050.43424.20
5.2.170.0070.48023.68
5.2.160.0030.44324.22
5.2.150.0030.44323.99
5.2.140.0030.48324.04
5.2.130.0030.45323.52
5.2.120.0000.43324.66
5.2.110.0100.46324.94
5.2.100.0070.48323.93
5.2.90.0130.46724.02
5.2.80.0200.44324.86
5.2.70.0100.43024.38
5.2.60.0070.48323.95
5.2.50.0030.40328.74
5.2.40.0030.48724.98
5.2.30.0000.53023.97
5.2.20.0070.47024.03
5.2.10.0130.54728.51
5.2.00.0130.48723.99
5.1.60.0030.44323.38
5.1.50.0000.46325.29
5.1.40.0070.45025.45
5.1.30.0130.42022.43
5.1.20.0030.46323.02
5.1.10.0030.44021.83
5.1.00.0130.45322.77
5.0.50.0000.44021.35
5.0.40.0100.45720.30
5.0.30.0030.57321.02
5.0.20.0100.45723.53
5.0.10.0030.51020.51
5.0.00.0100.59321.20
4.4.90.0030.03712.12
4.4.80.0000.01712.12
4.4.70.0030.02312.12
4.4.60.0000.03712.12
4.4.50.0030.01712.12
4.4.40.0000.03712.12
4.4.30.0000.02012.12
4.4.20.0030.03312.12
4.4.10.0000.03712.12
4.4.00.0000.05312.12
4.3.110.0030.03712.12
4.3.100.0000.02312.12
4.3.90.0000.02012.12
4.3.80.0000.05312.12
4.3.70.0000.03312.12
4.3.60.0030.01712.12
4.3.50.0070.02012.12
4.3.40.0070.04712.12
4.3.30.0030.03712.12
4.3.20.0000.01712.12
4.3.10.0000.03312.12
4.3.00.0030.02012.12

preferences:
34.59 ms | 401 KiB | 5 Q