3v4l.org

run code in 300+ PHP versions simultaneously
<?php $INDENT = 0; trait ShowMethodCalls { private function show($method) { global $INDENT; printf("%s%s::%s\n", str_repeat("> ", $INDENT++), __CLASS__, $method); $return = parent::$method(); $INDENT--; return $return; } public function accept() { return $this->show(__FUNCTION__); } public function current() { return $this->show(__FUNCTION__); } public function key() { return $this->show(__FUNCTION__); } public function next() { return $this->show(__FUNCTION__); } public function rewind() { return $this->show(__FUNCTION__); } public function valid() { return $this->show(__FUNCTION__); } } class TestFilterIterator extends FilterIterator { public function accept() { echo __FUNCTION__, PHP_EOL; return (bool)parent::current(); } } class ArrayIterator_ extends ArrayIterator { use ShowMethodCalls; } class TestFilterIterator_ extends TestFilterIterator { use ShowMethodCalls; } class LimitIterator_ extends LimitIterator { use ShowMethodCalls; } $iterator = new ArrayIterator_(array('0', 'a', '0', 'b', '0', 'c', '0', 'd')); $iterator = new TestFilterIterator_($iterator); $iterator = new LimitIterator_($iterator, 0, 2); foreach ($iterator as $k => $v) { var_dump([$k, $v]); }

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.70.0180.00316.59
8.3.60.0060.00916.88
8.3.50.0110.00822.13
8.3.40.0000.01518.92
8.3.30.0040.01118.67
8.3.20.0000.00821.91
8.3.10.0050.00520.66
8.3.00.0080.00320.96
8.2.180.0130.00925.92
8.2.170.0110.00418.86
8.2.160.0170.00322.96
8.2.150.0140.00025.66
8.2.140.0060.00324.66
8.2.130.0060.00326.16
8.2.120.0050.00321.04
8.2.110.0030.00622.20
8.2.100.0090.00317.87
8.2.90.0040.00419.16
8.2.80.0050.00317.97
8.2.70.0060.00317.63
8.2.60.0040.00417.93
8.2.50.0120.00018.10
8.2.40.0090.00020.55
8.2.30.0030.00619.25
8.2.20.0050.00318.13
8.2.10.0040.00418.00
8.2.00.0040.00418.19
8.1.280.0070.00725.92
8.1.270.0040.00424.66
8.1.260.0040.00426.35
8.1.250.0050.00328.09
8.1.240.0060.00319.13
8.1.230.0090.00317.58
8.1.220.0040.00417.74
8.1.210.0050.00318.77
8.1.200.0030.00717.48
8.1.190.0030.00617.35
8.1.180.0050.00318.10
8.1.170.0090.00018.46
8.1.160.0000.00718.89
8.1.150.0040.00420.23
8.1.140.0040.00419.57
8.1.130.0070.00019.01
8.1.120.0070.00017.51
8.1.110.0000.00817.51
8.1.100.0070.00017.45
8.1.90.0040.00417.50
8.1.80.0000.00817.39
8.1.70.0000.00717.50
8.1.60.0030.00517.64
8.1.50.0030.00617.54
8.1.40.0030.00517.52
8.1.30.0080.00017.67
8.1.20.0000.00817.64
8.1.10.0030.00517.61
8.1.00.0000.01017.58
8.0.300.0030.00618.77
8.0.290.0000.00716.75
8.0.280.0050.00218.39
8.0.270.0020.00517.17
8.0.260.0060.00017.30
8.0.250.0030.00317.02
8.0.240.0000.00716.89
8.0.230.0030.00316.83
8.0.220.0040.00416.91
8.0.210.0000.00716.88
8.0.200.0070.00016.84
8.0.190.0070.00016.94
8.0.180.0000.00716.93
8.0.170.0000.00716.88
8.0.160.0070.00016.81
8.0.150.0000.00716.75
8.0.140.0000.00716.82
8.0.130.0030.00313.36
8.0.120.0040.00416.90
8.0.110.0000.00716.73
8.0.100.0070.00016.77
8.0.90.0030.00516.92
8.0.80.0070.01416.86
8.0.70.0070.00016.77
8.0.60.0050.00316.93
8.0.50.0000.00716.84
8.0.30.0130.00616.89
8.0.20.0130.00617.40
8.0.10.0040.00416.83
8.0.00.0140.01116.65
7.4.330.0020.00215.55
7.4.320.0060.00016.62
7.4.300.0030.00316.41
7.4.290.0000.00716.58
7.4.280.0070.00016.60
7.4.270.0000.00816.52
7.4.260.0040.00416.54
7.4.250.0030.00316.40
7.4.240.0030.00316.64
7.4.230.0050.00216.61
7.4.220.0110.00716.63
7.4.210.0070.00716.63
7.4.200.0070.00016.34
7.4.160.0120.01016.52
7.4.150.0090.00917.40
7.4.140.0100.00917.86
7.4.130.0110.01016.44
7.4.120.0060.01416.60
7.4.110.0090.00916.28
7.4.100.0100.01316.39
7.4.90.0100.01016.59
7.4.80.0130.01319.39
7.4.70.0130.00616.54
7.4.60.0100.00616.50
7.4.50.0040.01116.57
7.4.40.0030.01916.50
7.4.30.0130.01116.50
7.4.00.0070.00714.99
7.3.330.0000.00513.21
7.3.320.0000.00513.31
7.3.310.0000.00816.45
7.3.300.0030.00316.33
7.3.290.0030.00316.40
7.3.280.0090.01016.36
7.3.270.0140.00317.40
7.3.260.0150.00816.60
7.3.250.0110.00716.64
7.3.240.0070.01116.38
7.3.230.0150.00416.50
7.3.210.0100.00716.68
7.3.200.0090.00916.59
7.3.190.0100.00816.53
7.3.180.0130.00716.61
7.3.170.0120.00616.38
7.3.160.0070.01116.60
7.2.330.0030.01616.55
7.2.320.0090.00916.52
7.2.310.0140.00716.75
7.2.300.0070.01116.69
7.2.290.0160.00716.86
7.2.60.0100.00716.75
7.2.00.0040.00819.42
7.1.200.0000.01415.76
7.1.100.0060.00917.71
7.1.70.0100.01017.29
7.1.60.0110.00717.19
7.1.50.0190.01534.81
7.1.20.0270.08740.33
7.1.10.0100.06322.28
7.1.00.0300.06322.39
7.0.200.0120.00616.87
7.0.160.0130.05721.86
7.0.150.0130.07321.84
7.0.140.0070.08321.89
7.0.130.0070.06721.89
7.0.120.0230.06321.96
7.0.110.0170.06322.07
7.0.100.0130.05321.88
7.0.90.0030.06321.81
7.0.80.0070.06321.86
7.0.70.0130.06721.85
7.0.60.0230.06021.91
7.0.50.0200.06021.77
7.0.40.0130.06021.94
7.0.30.0100.07721.70
7.0.20.0130.05322.02
7.0.10.0200.06321.88
7.0.00.0200.05721.94

preferences:
50.11 ms | 401 KiB | 5 Q