3v4l.org

run code in 300+ PHP versions simultaneously
<?php function swap(&$arr, $i, $j) { $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } function quicksort(&$arr, $left, $right) { $pivot = $arr[($left + $right) >> 1]; $i = $left; $j = $right; while ($i <= $j) { while ($arr[$i] < $pivot) { $i++; } while ($arr[$j] > $pivot) { $j--; } if ($i <= $j) { swap($arr, $i++, $j--); } } if ($left < $j) { quicksort($arr, $left, $j); } if ($i < $right) { quicksort($arr, $i, $right); } } function qsort($len) { // Sample data $arr = array(); for ($i = 0 ; $i < $len ; $i++) { $arr[$i] = floor(rand(0, $len)); if ($i % 2 == 0) { $arr[$i] = -1 * $arr[$i]; } } $start = microtime(true); quicksort($arr, 0, count($arr) - 1); $diff = microtime(true) - $start; for ($i = 1 ; $i < count($arr) ; $i++) { if ($arr[$i-1] > $arr[$i]) { die("failed to sort!!"); } } return $diff; } $len = 100000; $min = PHP_INT_MAX; for ($i = 0 ; $i < 3 ; $i++) { $time = qsort($len); if ($time < $min) { $min = $time; } }

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.0000.28122.98
7.1.60.0100.34023.12
7.1.50.0070.26023.17
7.1.00.0030.42028.27
7.0.200.0300.31522.56
7.0.140.0030.41728.12
7.0.100.0730.37724.84
7.0.90.0100.37724.85
7.0.80.0500.38724.81
7.0.70.0570.37024.82
7.0.60.0930.37724.96
7.0.50.0500.33725.29
7.0.40.0130.38323.93
7.0.30.0170.32023.87
7.0.20.0100.37323.93
7.0.10.0070.38023.91
7.0.00.0930.37023.88
5.6.280.0171.06344.80
5.6.250.0271.02744.56
5.6.240.0230.97044.69
5.6.230.0131.01744.44
5.6.220.0270.94044.63
5.6.210.0100.97744.69
5.6.200.1170.85345.04
5.6.190.0331.01044.97
5.6.180.0230.99744.90
5.6.170.0131.03044.89
5.6.160.0170.97345.08
5.6.150.0300.96044.90
5.6.140.0371.00044.98
5.6.130.0271.04344.98
5.6.120.0300.97044.95
5.6.110.0170.89344.94
5.6.100.0171.03344.98
5.6.90.0400.99345.02
5.6.80.0301.16044.40
5.6.70.0200.95744.40
5.6.60.0270.99744.42
5.6.50.0330.85744.50
5.6.40.0200.87344.30
5.6.30.0231.04344.48
5.6.20.0070.90744.29
5.6.10.0301.03044.23
5.6.00.0200.97744.31
5.5.380.0271.00744.29
5.5.370.0431.02744.50
5.5.360.0230.99744.29
5.5.350.0271.03044.34
5.5.340.0201.00744.77
5.5.330.0271.05044.68
5.5.320.0331.02044.80
5.5.310.0301.00744.58
5.5.300.0300.88344.74
5.5.290.0170.95744.82
5.5.280.0271.00044.77
5.5.270.0130.93744.86
5.5.260.0400.85344.84
5.5.250.0230.96344.59
5.5.240.0131.00044.19
5.5.230.0130.81744.12
5.5.220.0271.12044.11
5.5.210.0271.01344.13
5.5.200.0271.01344.21
5.5.190.1100.95043.93
5.5.180.0231.00044.06
5.5.160.0400.99744.05
5.5.150.0370.97044.13
5.5.140.0331.02044.11
5.5.130.0371.00744.06
5.5.120.0330.87344.12
5.5.110.0231.07044.19
5.5.100.0230.98044.05
5.5.90.0230.89044.08
5.5.80.0230.99344.09
5.5.70.0271.05343.88
5.5.60.0170.92043.94
5.5.50.0200.91744.05
5.5.40.0430.89043.90
5.5.30.0130.97344.02
5.5.20.0171.03744.02
5.5.10.0201.06744.06
5.5.00.0371.02343.91
5.4.450.0171.05343.29
5.4.440.0170.89043.26
5.4.430.0170.91043.33
5.4.420.0070.80043.45
5.4.410.0131.03043.01
5.4.400.0300.96743.10
5.4.390.0171.02742.91
5.4.380.0200.85342.81
5.4.370.0270.97042.94
5.4.360.0271.02043.13
5.4.350.0170.88342.99
5.4.340.0270.96342.82
5.4.320.0231.01042.95
5.4.310.0371.06042.77
5.4.300.0130.99742.93
5.4.290.0171.02042.81
5.4.280.0201.01343.05
5.4.270.0230.90743.16
5.4.260.0170.86042.77
5.4.250.0230.90742.95
5.4.240.0200.91042.80
5.4.230.0331.03042.93
5.4.220.0070.90342.94
5.4.210.0200.85342.95
5.4.200.0231.00743.08
5.4.190.0170.96742.79
5.4.180.0230.96742.95
5.4.170.0170.98342.93
5.4.160.0130.99042.94
5.4.150.0301.00342.50
5.4.140.0200.84340.26
5.4.130.0201.03040.37
5.4.120.0131.05340.10
5.4.110.0230.82040.41
5.4.100.0300.98740.38
5.4.90.0270.98340.46
5.4.80.0201.00740.35
5.4.70.0300.98740.41
5.4.60.0130.83040.22
5.4.50.0201.03040.29
5.4.40.0331.02040.36
5.4.30.0170.99040.40
5.4.20.0231.01740.24
5.4.10.0771.03340.34
5.4.00.0270.98739.75
5.3.290.0131.01338.88
5.3.280.0071.14038.73
5.3.270.0131.18038.75
5.3.260.0101.15738.67
5.3.250.0131.16738.84
5.3.240.0231.18038.69
5.3.230.0101.20738.63
5.3.220.0171.07038.63
5.3.210.0201.19738.68
5.3.200.0131.11038.75
5.3.190.0131.18338.76
5.3.180.0131.13338.63
5.3.170.0231.20338.80
5.3.160.0101.15038.77
5.3.150.0301.13738.77
5.3.140.0171.14338.63
5.3.130.0201.06038.71
5.3.120.0371.13338.66
5.3.110.0171.20338.80
5.3.100.0131.09038.17
5.3.90.0201.15038.09
5.3.80.0631.15338.09
5.3.70.0131.15738.23
5.3.60.0101.00038.17
5.3.50.0201.14738.12
5.3.40.0171.13038.09
5.3.30.0101.08038.11
5.3.20.0371.19337.84
5.3.10.0131.17037.80
5.3.00.0271.18337.74
5.2.170.0301.65333.52
5.2.160.0131.67333.50
5.2.150.0101.50033.62
5.2.140.0101.66333.46
5.2.130.0271.74733.52
5.2.120.0131.50033.52
5.2.110.0231.71733.64
5.2.100.0101.69034.56
5.2.90.0131.80033.65
5.2.80.0231.66033.39
5.2.70.0231.69333.48
5.2.60.0171.75033.36
5.2.50.0201.83333.51
5.2.40.0131.84733.55
5.2.30.0131.85033.33
5.2.20.0171.85733.43
5.2.10.0131.52333.26
5.2.00.0271.58332.98
5.1.60.0171.60039.11
5.1.50.0071.34339.31
5.1.40.0171.55739.07
5.1.30.0101.67039.51
5.1.20.0031.36739.61
5.1.10.0171.42039.40
5.1.00.0171.43039.41
5.0.50.0132.48738.18
5.0.40.0102.49037.80
5.0.30.0102.49037.44
5.0.20.0032.49737.58
5.0.10.0102.49037.57
5.0.00.0232.47737.40
4.4.90.0202.48035.41
4.4.80.0102.49035.48
4.4.70.0172.48335.52
4.4.60.0102.49035.46
4.4.50.0032.49735.45
4.4.40.0172.48335.43
4.4.30.0102.49035.43
4.4.20.0132.48735.54
4.4.10.0202.48035.53
4.4.00.0272.47335.52
4.3.110.0202.48035.34
4.3.100.0032.49735.31
4.3.90.0172.48335.21
4.3.80.0032.49736.14
4.3.70.0072.49335.31
4.3.60.0072.49335.23
4.3.50.0172.48335.29
4.3.40.0032.49735.15
4.3.30.0132.48734.08
4.3.20.0202.48034.04
4.3.10.0132.48733.96
4.3.00.0132.48733.89

preferences:
32.65 ms | 400 KiB | 5 Q