3v4l.org

run code in 300+ PHP versions simultaneously
<?php class RetriesExceededException extends \Exception {} class Retry { static public function withDelay(callable $fn, $retries, $delay) { return self::execute($fn, $retries, $delay); } static public function immediately(callable $fn, $retries) { return self::execute($fn, $retries); } static private function execute(callable $fn, $retries, $delay = null) { while ($retries) { $retries--; try { return $fn(); } catch (\Exception $e) { if ($retries && $delay) { //do delay } } } throw RetriesExceededException(); } } class Test { public function exception() { throw \Exception(); } } $test = new Test(); try { Retry::immediately(function() use ($test) { $test->exception(); }, 5); } catch (\Exception $e) { var_dump($e); } echo "bar"; //Retry::withDelay($fn, $retries, $delay); //Retry::immediately($fn, $retries);

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)
8.3.60.0070.00716.63
8.3.50.0130.00521.16
8.3.40.0200.00018.79
8.3.30.0110.00418.70
8.3.20.0000.00820.34
8.3.10.0040.00423.48
8.3.00.0040.00423.63
8.2.180.0110.00416.46
8.2.170.0100.00322.96
8.2.160.0100.00322.11
8.2.150.0040.00424.18
8.2.140.0000.00824.66
8.2.130.0000.00726.16
8.2.120.0100.00017.63
8.2.110.0030.00622.14
8.2.100.0070.00419.23
8.2.90.0040.00417.75
8.2.80.0040.00419.16
8.2.70.0000.01017.93
8.2.60.0040.00417.93
8.2.50.0000.00818.10
8.2.40.0000.00920.46
8.2.30.0000.00819.73
8.2.20.0040.00417.68
8.2.10.0050.00317.95
8.2.00.0030.00518.08
8.1.280.0180.00025.92
8.1.270.0040.00420.07
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0000.00822.58
8.1.230.0100.00619.07
8.1.220.0080.00017.74
8.1.210.0030.00618.77
8.1.200.0060.00317.36
8.1.190.0040.00417.23
8.1.180.0030.00518.10
8.1.170.0040.00418.67
8.1.160.0080.00022.05
8.1.150.0040.00419.00
8.1.140.0050.00317.47
8.1.130.0040.00417.69
8.1.120.0000.00717.38
8.1.110.0070.00017.54
8.1.100.0000.00717.41
8.1.90.0040.00417.52
8.1.80.0050.00317.51
8.1.70.0070.00017.52
8.1.60.0030.00517.60
8.1.50.0050.00317.43
8.1.40.0030.00517.42
8.1.30.0000.01117.66
8.1.20.0000.00817.64
8.1.10.0040.00417.61
8.1.00.0050.00317.54
8.0.300.0000.00821.65
8.0.290.0050.00316.88
8.0.280.0000.00718.51
8.0.270.0000.00717.20
8.0.260.0030.00317.27
8.0.250.0050.00316.96
8.0.240.0000.00617.00
8.0.230.0000.00716.92
8.0.220.0070.00016.95
8.0.210.0040.00416.99
8.0.200.0040.00417.04
8.0.190.0000.00817.08
8.0.180.0000.00817.00
8.0.170.0040.00417.02
8.0.160.0080.00017.05
8.0.150.0070.00016.99
8.0.140.0040.00717.00
8.0.130.0000.00613.42
8.0.120.0040.00417.00
8.0.110.0030.00516.81
8.0.100.0000.00817.05
8.0.90.0040.00416.98
8.0.80.0100.00717.04
8.0.70.0000.00716.84
8.0.60.0040.00417.09
8.0.50.0000.00816.93
8.0.30.0090.00917.25
8.0.20.0070.01417.41
8.0.10.0050.00317.13
8.0.00.0080.01116.78
7.4.330.0050.00015.21
7.4.320.0000.00616.47
7.4.300.0030.00316.63
7.4.290.0020.00516.61
7.4.280.0060.00316.57
7.4.270.0000.00716.67
7.4.260.0080.00016.60
7.4.250.0070.00016.54
7.4.240.0020.00616.49
7.4.230.0030.00316.56
7.4.220.0110.01116.63
7.4.210.0030.01216.65
7.4.200.0070.00016.43
7.4.160.0060.00916.57
7.4.150.0170.00317.40
7.4.140.0100.00917.86
7.4.130.0070.01116.61
7.4.120.0130.00816.58
7.4.110.0120.00916.65
7.4.100.0140.00716.59
7.4.90.0030.01316.69
7.4.80.0060.01219.39
7.4.70.0060.01716.57
7.4.60.0160.00016.55
7.4.50.0030.00316.56
7.4.40.0070.01016.61
7.4.30.0110.01116.48
7.4.00.0090.00315.07
7.3.330.0000.00513.47
7.3.320.0050.00013.23
7.3.310.0030.00316.29
7.3.300.0030.00316.35
7.3.290.0050.01116.40
7.3.280.0150.00716.42
7.3.270.0120.01217.40
7.3.260.0090.00916.50
7.3.250.0120.00516.51
7.3.240.0140.00316.55
7.3.230.0200.00016.39
7.3.210.0000.01716.47
7.3.200.0150.00916.42
7.3.190.0060.00916.40
7.3.180.0000.02116.31
7.3.170.0030.01216.55
7.3.160.0090.00816.39
7.3.10.0190.01116.59
7.3.00.0510.00416.61
7.2.330.0100.00716.61
7.2.320.0140.00516.45
7.2.310.0100.00616.75
7.2.300.0090.01416.63
7.2.290.0160.00616.75
7.2.130.0160.01617.05
7.2.120.0200.01016.65
7.2.110.0230.00316.52
7.2.100.0170.00616.53
7.2.90.0110.00716.75
7.2.80.0030.01016.38
7.2.70.0060.00916.59
7.2.60.0050.00616.88
7.2.50.0250.00616.73
7.2.40.0190.00516.72
7.2.30.0210.00817.00
7.2.20.0230.01016.56
7.2.10.0040.01316.47
7.2.00.0110.00917.97
7.1.250.0350.00915.76
7.1.200.0090.00315.97
7.1.100.0040.00718.25
7.1.70.0000.01417.04
7.1.60.0040.02219.18
7.1.50.0000.02116.76
7.1.00.0030.07722.30
7.0.200.0170.00716.68
7.0.60.0070.06719.83
7.0.50.0000.05317.96
7.0.40.0100.08320.08
7.0.30.0470.04320.09
7.0.20.0170.05720.06
7.0.10.0100.08320.24
7.0.00.0100.08020.30
5.6.280.0070.07021.09
5.6.210.0170.06320.79
5.6.200.0100.07018.22
5.6.190.0130.07720.64
5.6.180.3200.04020.61
5.6.170.0300.08020.55
5.6.160.0070.03720.45
5.6.150.0030.05318.14
5.6.140.0100.07718.19
5.6.130.0100.08718.21
5.6.120.0100.07321.11
5.6.110.0000.09320.97
5.6.100.0200.07321.12
5.6.90.0100.08321.12
5.6.80.0030.04020.49
5.6.70.3200.03320.52
5.5.350.0130.06720.36
5.5.340.0000.04317.98
5.5.330.0070.06720.13
5.5.320.0270.08020.30
5.5.310.0130.04720.32
5.5.300.0130.07017.96
5.5.290.0100.06018.05
5.5.280.0070.05020.70
5.5.270.0100.06020.88
5.5.260.0130.06320.81
5.5.250.0030.09020.56
5.5.240.0270.06020.13
5.4.450.0770.06319.55
5.4.440.0130.05719.66
5.4.430.0100.06019.46
5.4.420.0230.06719.35
5.4.410.0770.08019.43
5.4.400.0670.05718.96
5.4.390.0630.05318.97
5.4.380.0900.07318.97
5.4.370.0970.06318.83
5.4.360.0930.05319.22
5.4.350.0870.07019.12
5.4.340.0730.06719.12
5.4.320.0900.07018.96
5.4.310.1130.06719.06
5.4.300.0900.04319.14
5.4.290.0670.06019.01
5.4.280.0700.06319.28
5.4.270.0700.05719.15
5.4.260.0500.06718.82
5.4.250.0500.05718.82
5.4.240.0570.05719.11
5.4.230.0800.04319.33
5.4.220.0900.07719.14
5.4.210.1070.07319.12
5.4.200.1030.07716.95
5.4.190.0870.06019.00
5.4.180.0870.06019.34
5.4.170.0900.05319.25
5.4.160.0800.05319.26
5.4.150.0630.05719.26
5.4.140.0730.05316.39
5.4.130.0900.04316.46
5.4.120.0800.05316.40
5.4.110.0770.05016.55
5.4.100.0770.05016.57
5.4.90.0830.05316.60
5.4.80.0730.05016.56
5.4.70.0800.04716.35
5.4.60.0700.04316.48
5.4.50.0200.04716.29
5.4.40.0130.05716.53
5.4.30.0830.05316.37
5.4.20.0970.05016.49
5.4.10.0700.05016.41
5.4.00.0670.05715.86
5.3.290.0700.06014.72
5.3.280.0800.05014.59
5.3.270.1030.05014.66
5.3.260.0870.07314.60
5.3.250.0970.04714.71
5.3.240.0570.04314.61
5.3.230.0800.05714.58
5.3.220.0630.05314.56
5.3.210.0630.06314.64
5.3.200.0770.05014.87
5.3.190.0800.04714.66
5.3.180.0900.05314.56
5.3.170.0930.05314.56
5.3.160.0630.05714.48
5.3.150.0530.06014.50
5.3.140.0670.05714.55
5.3.130.0700.05014.65
5.3.120.0830.06014.69
5.3.110.0800.06014.56
5.3.100.0870.04713.98
5.3.90.0800.04714.07
5.3.80.0770.05014.11
5.3.70.0600.04714.02
5.3.60.0870.04714.00
5.3.50.0630.07014.08
5.3.40.0600.05314.10
5.3.30.0670.04714.05
5.3.20.0900.07013.86
5.3.10.0770.05013.82
5.3.00.0600.05713.73
5.2.170.0530.04311.07
5.2.160.0630.03311.17
5.2.150.0300.05011.39
5.2.140.0430.04311.07
5.2.130.0770.03311.03
5.2.120.0700.04011.03
5.2.110.0500.04311.13
5.2.100.0330.03711.03
5.2.90.0100.03711.04
5.2.80.0430.04311.04
5.2.70.0430.05311.02
5.2.60.0700.05311.12
5.2.50.0700.03011.05
5.2.40.0400.04710.88
5.2.30.0070.04311.00
5.2.20.0070.04310.93
5.2.10.0700.04010.96
5.2.00.0630.04310.66
5.1.60.0470.0309.89
5.1.50.0400.0379.86
5.1.40.0370.0439.92
5.1.30.0430.04010.29
5.1.20.0470.04710.27
5.1.10.0500.04310.06
5.1.00.0530.04010.02
5.0.50.0100.0338.62
5.0.40.0170.0308.36
5.0.30.0200.0478.17
5.0.20.0400.0238.17
5.0.10.0130.0438.26
5.0.00.0370.0508.23
4.4.90.0370.0278.17
4.4.80.0430.0238.17
4.4.70.0230.0308.17
4.4.60.0330.0178.17
4.4.50.0230.0138.17
4.4.40.0170.0408.17
4.4.30.0330.0208.17
4.4.20.0270.0238.17
4.4.10.0200.0208.17
4.4.00.0270.0378.17
4.3.110.0370.0208.17
4.3.100.0200.0208.17
4.3.90.0330.0278.17
4.3.80.0270.0338.17
4.3.70.0330.0138.17
4.3.60.0070.0308.17
4.3.50.0270.0278.17
4.3.40.0300.0308.17
4.3.30.0100.0238.17
4.3.20.0100.0308.17
4.3.10.0100.0208.17
4.3.00.0030.0207.24

preferences:
52.45 ms | 401 KiB | 5 Q