3v4l.org

run code in 300+ PHP versions simultaneously
<?php $subjects = [ 'LF' => "aaaa\nbbbb", 'CRLF' => "aaaa\r\nbbbb", 'CR' => "aaaa\rbbbb", 'NUL' => "aaaa\x00bbbb", 'VT' => "aaaa\x0Bbbbb", 'FF' => "aaaa\x0Cbbbb", 'NEL' => "aaaa\x85bbbb", 'LS' => "aaaa\u{2028}bbbb", 'PS' => "aaaa\u{2029}bbbb" ]; $patterns = [ 'DEFAULT' => ['~.~A', '~\N~A'], 'ANYCRLF' => ['~(*ANYCRLF).~A', '~(*ANYCRLF)\N~A'], 'CRLF' => ['~(*CRLF).~A', '~(*CRLF)\N~A'], 'CR' => ['~(*CR).~A', '~(*CR)\N~A'], 'LF' => ['~(*LF).~A', '~(*LF)\N~A'], 'ANY' => ['~(*ANY).~A', '~(*ANY)\N~A'], 'NUL' => ['~(*NUL).~A', '~(*NUL)\N~A'], ]; $format = ' | %7s | %10s | %3s | %3s | ' . PHP_EOL; $sep = '-+---------+------------+-----+-----+-' . PHP_EOL; echo ' | nl type | nl setting | dot | \N | ', PHP_EOL; foreach($subjects as $nl => $subject) { echo $sep; foreach($patterns as $nlsetting => $pattern) { if (false === $cntdot = preg_match_all($pattern[0].'u', $subject)) $cntdot = preg_match_all($pattern[0], $subject); if (false === $cntN = preg_match_all($pattern[1].'u', $subject)) $cntN = preg_match_all($pattern[1], $subject); printf($format, $nl, $nlsetting, $cntdot, $cntN); } } echo $sep;

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.4.120.0150.00520.53
8.4.110.0130.00822.56
8.4.100.0110.00718.06
8.4.90.0070.00222.30
8.4.80.0120.01018.18
8.4.70.0130.00718.20
8.4.60.0080.01318.92
8.4.50.0120.00922.65
8.4.40.0030.01720.66
8.4.30.0100.01023.99
8.4.20.0110.01118.08
8.4.10.0030.00623.90
8.3.250.0100.00620.67
8.3.240.0150.00416.93
8.3.230.0040.00516.90
8.3.220.0100.00518.99
8.3.210.0130.00816.74
8.3.200.0080.00116.89
8.3.190.0140.00517.39
8.3.180.0120.00716.84
8.3.170.0090.00917.15
8.3.160.0080.00018.43
8.3.150.0050.00317.04
8.3.140.0040.00417.30
8.3.130.0030.00618.90
8.3.120.0140.00719.02
8.3.110.0030.00620.94
8.3.100.0030.00624.06
8.3.90.0100.01026.77
8.3.80.0040.01118.31
8.3.70.0080.00816.75
8.3.60.0070.00718.63
8.3.50.0160.00616.95
8.3.40.0110.00720.29
8.3.30.0060.01219.14
8.3.20.0040.00424.18
8.3.10.0040.00424.66
8.3.00.0040.00426.16
8.2.290.0120.00620.61
8.2.280.0090.00718.36
8.2.270.0100.01017.35
8.2.260.0000.01516.78
8.2.250.0060.00316.98
8.2.240.0040.01218.98
8.2.230.0060.00322.58
8.2.220.0030.00637.54
8.2.210.0080.00026.77
8.2.200.0030.00616.63
8.2.190.0110.00416.63
8.2.180.0090.00916.88
8.2.170.0100.01019.27
8.2.160.0140.00722.96
8.2.150.0000.00825.66
8.2.140.0050.00324.66
8.2.130.0040.00426.16
8.2.120.0030.00619.79
8.2.110.0070.00322.34
8.2.100.0070.00320.52
8.2.60.0080.00517.72
8.1.330.0130.00822.00
8.1.320.0120.00716.32
8.1.310.0040.00418.38
8.1.300.0130.00318.50
8.1.290.0070.00330.84
8.1.280.0110.00725.92
8.1.270.0000.00824.66
8.1.260.0090.00026.35
8.1.250.0050.00328.09
8.1.240.0100.00018.99
8.1.230.0060.00318.71

preferences:
36.14 ms | 403 KiB | 5 Q