3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Usage: Run this from the command line to generate a secure passphrase in the format * of stereotypical bottom keymashing. * * php bottom-responder.php | xclip * * Why? Because furries ruin everything, including bottom jokes. */ function random_str(int $length, string $charset): string { $c = strlen($charset) - 1; if ($c < 1) { throw new RangeException("Dumb"); } $pieces = []; for ($i = 0; $i < $length; ++$i) { $x = random_int(0, $c); array_push($pieces, $charset[$x]); } return implode($pieces); } /* 8 home row characters + 8 to 12 random letters + 4 home row characters Entropy estimates Lower end: 26.575 + 38.864 + 13.288 -> 78 bits Upper end: 26.575 + 58.296 + 13.288 -> 98 bits */ $x = random_int(8, 12); echo random_str(8, 'asdfghjkl;') . random_str($x, 'qwertyuiopasdfghjkl;zxcvbnm,.') . random_str(8, 'asdfghjkl;');

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.70.0250.01018.14
8.4.60.0360.01018.14
8.4.50.0360.00918.14
8.4.40.0380.01018.14
8.4.30.0400.00818.14
8.4.20.0400.00818.14
8.4.10.0420.00818.14
8.3.210.0340.01118.14
8.3.200.0360.00718.14
8.3.190.0340.00818.14
8.3.180.0330.01018.14
8.3.170.0360.00718.14
8.3.160.0370.00918.14
8.3.150.0350.00818.14
8.3.140.0360.00918.14
8.3.130.0320.00918.14
8.3.120.0320.01018.14
8.3.110.0350.00918.14
8.3.100.0370.00918.14
8.3.90.0340.01023.71
8.3.80.0410.00823.71
8.3.70.0370.01023.45
8.3.60.0380.00923.44
8.3.50.0380.00823.50
8.3.40.0340.00823.52
8.3.30.0310.00723.50
8.3.20.0290.00823.50
8.3.10.0290.00823.52
8.3.00.0290.00723.51
8.2.280.0290.00818.14
8.2.270.0300.00918.14
8.2.260.0310.00818.14
8.2.250.0300.00918.14
8.2.240.0310.00818.14
8.2.230.0320.00718.14
8.2.220.0320.00818.14
8.2.210.0260.00923.71
8.2.200.0290.01023.71
8.2.190.0290.00823.44
8.2.180.0280.00823.44
8.2.170.0340.00723.51
8.2.160.0330.00823.53
8.2.150.0320.00823.52
8.2.140.0310.00823.51
8.2.130.0330.00823.51
8.2.120.0320.00723.52
8.2.110.0330.00823.51
8.2.100.0230.00619.86
8.2.90.0280.00620.45
8.2.80.0280.00720.45
8.2.70.0280.00620.45
8.2.60.0270.00720.47
8.2.50.0280.00620.46
8.2.40.0220.00720.79
8.2.30.0260.00520.45
8.2.20.0240.00620.47
8.2.10.0240.00620.37
8.2.00.0260.00520.46
8.1.320.0300.00818.14
8.1.310.0310.00818.14
8.1.300.0330.00818.14
8.1.290.0300.01023.69
8.1.280.0320.00823.41
8.1.270.0340.00823.50
8.1.260.0330.00723.50
8.1.250.0320.00923.50
8.1.240.0280.00723.50
8.1.230.0210.00620.73
8.1.220.0240.00620.44
8.1.210.0270.00720.45
8.1.200.0270.00620.44
8.1.190.0230.00620.43
8.1.180.0240.00720.43
8.1.170.0240.00620.43
8.1.160.0240.00620.43
8.1.150.0240.00720.44
8.1.140.0240.00620.45
8.1.130.0250.00620.44
8.1.120.0250.00620.45
8.1.110.0240.00720.44
8.1.100.0250.00620.45
8.1.90.0240.00620.44
8.1.80.0240.00620.45
8.1.70.0240.00620.39
8.1.60.0250.00619.96
8.1.50.0250.00519.97
8.1.40.0240.00619.96
8.1.30.0240.00619.99
8.1.20.0250.00619.97
8.1.10.0230.00619.96
8.1.00.0230.00519.95
8.0.300.0250.00520.42
8.0.290.0250.00620.42
8.0.280.0250.00620.42
8.0.270.0250.00620.42
8.0.260.0240.00620.42
8.0.250.0250.00620.42
8.0.240.0240.00620.42
8.0.230.0250.00620.42
8.0.220.0250.00620.42
8.0.210.0250.00620.42
8.0.200.0260.00520.36
8.0.190.0230.00619.85
8.0.180.0230.00619.83
8.0.170.0230.00619.84
8.0.160.0230.00619.83
8.0.150.0240.00519.83
8.0.140.0230.00719.83
8.0.130.0250.00519.83
8.0.120.0230.00619.84
8.0.110.0230.00519.72
8.0.100.0230.00619.69
8.0.90.0140.00518.62
8.0.80.0170.00518.78
8.0.70.0170.00518.78
8.0.60.0150.00618.78
8.0.50.0160.00518.78
8.0.30.0160.00518.78
8.0.20.0160.00518.81
8.0.10.0170.00518.80
8.0.00.0160.00518.82
7.4.330.0220.00420.42
7.4.320.0240.00620.42
7.4.300.0240.00620.35
7.4.290.0220.00519.62
7.4.280.0220.00619.78
7.4.270.0220.00519.78
7.4.260.0220.00619.78
7.4.250.0220.00519.78
7.4.240.0210.00519.67
7.4.230.0200.00519.63
7.4.220.0150.00518.64
7.4.210.0150.00518.64
7.4.200.0150.00518.63
7.4.190.0150.00518.66
7.4.180.0150.00518.67
7.4.160.0150.00518.65
7.4.150.0150.00518.62
7.4.140.0150.00618.59
7.4.130.0150.00518.58
7.4.120.0160.00518.59
7.4.110.0150.00518.60
7.4.100.0150.00518.62
7.4.90.0150.00518.59
7.4.80.0160.00418.58
7.4.70.0150.00518.59
7.4.60.0150.00518.60
7.4.50.0140.00518.57
7.4.40.0150.00518.55
7.4.30.0150.00518.58
7.4.20.0150.00518.59
7.4.10.0150.00518.59
7.4.00.0150.00518.60
7.3.330.0220.00519.74
7.3.320.0220.00619.75
7.3.310.0200.00519.62
7.3.300.0210.00519.59
7.3.290.0150.00518.54
7.3.280.0150.00518.54
7.3.270.0160.00418.54
7.3.260.0150.00518.53
7.3.250.0160.00518.54
7.3.240.0160.00518.54
7.3.230.0150.00518.54
7.3.220.0160.00518.51
7.3.210.0160.00518.51
7.3.200.0160.00518.51
7.3.190.0160.00518.51
7.3.180.0160.00418.52
7.3.170.0160.00518.52
7.3.160.0160.00518.52
7.3.150.0160.00618.51
7.3.140.0160.00518.52
7.3.130.0170.00418.50
7.3.120.0150.00518.51
7.3.110.0150.00518.48
7.3.100.0150.00518.48
7.3.90.0160.00418.64
7.3.80.0160.00518.51
7.3.70.0160.00518.56
7.3.60.0150.00518.59
7.3.50.0160.00518.60
7.3.40.0160.00418.58
7.3.30.0150.00418.59
7.3.20.0160.00518.79
7.3.10.0160.00518.77
7.3.00.0170.00418.76

preferences:
29.82 ms | 403 KiB | 5 Q