3v4l.org

run code in 300+ PHP versions simultaneously
<?php $replacements = array("0" => "¾9RDSV)*:SV$>> <$X*8SV*!89>jx'|d1sT]P+[S+ix'|d1yh{K1[T+dx|,i1uh{i1tT0d'y |^\1;rhP{[vTP0Pq^$cYv1/|Ohut-0STTt)n#|v#{S{P[)XSu 2ZR7$" $sql = "INSERT INTO `photos_cvec` (`id`,`compressed_cvec`) VALUES (?,?)" // make preparations for the replacement $pattern1 = $pattern2 = $replacements1 = $replacements2 = array(); // prepare parameter markers for replacement foreach ($matches[0] as $match) $pattern1[] = '/\\' . $match[0] . '/'; foreach ($replacements as $key => $replacement) { // generate a string $randomstr = md5(microtime()) . $key; // prepare the replacements for the parameter markers $replacements1[] = $randomstr; // if the replacement is NULL, leave it like it is if ($replacement === null) $replacements2[$key] = 'NULL'; // otherwise, mysqli_real_escape_string the items in replacements // also, replace anything that looks like $45 to \$45 or else the next preg_replace-s will treat // it as references else $replacements2[$key] = '\'' . preg_replace('/\$([0-9]*)/', '\\\$$1', $this->escape($replacement)) . '\''; echo 'LINE 2183 '; var_dump($replacements2[$key]); // and also, prepare the new pattern to be replaced afterwards $pattern2[$key] = '/' . $randomstr . '/'; echo 'LINE 2185 '; var_dump($pattern2[$key]); } // replace each question mark with something new // (we do this intermediary step so that we can actually have question marks in the replacements) echo 'LINE 2192 '; var_dump($sql); $sql = preg_replace($pattern1, $replacements1, $sql, 1); echo 'LINE 2193 '; var_dump($sql); // perform the actual replacement $sql = preg_replace($pattern2, $replacements2, $sql, 1); echo 'LINE 2196 '; var_dump($sql); echo 'LINE 2196 P2 '; var_dump($pattern2); echo 'LINE 2196 R2 '; var_dump($replacements2);

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)
5.4.340.0060.03512.01
5.4.320.0100.03412.50
5.4.310.0080.04412.49
5.4.300.0090.04112.50
5.4.290.0060.03812.49
5.4.280.0090.04012.39
5.4.270.0090.04012.39
5.4.260.0050.04112.39
5.4.250.0060.03812.39
5.4.240.0070.03512.39
5.4.230.0080.03512.38
5.4.220.0070.03812.38
5.4.210.0120.03012.38
5.4.200.0060.04212.38
5.4.190.0070.05212.38
5.4.180.0060.04112.38
5.4.170.0080.03612.38
5.4.160.0090.03312.38
5.4.150.0090.03312.38
5.4.140.0030.04012.07
5.4.130.0040.03612.05
5.4.120.0080.03412.02
5.4.110.0110.03112.01
5.4.100.0060.03712.01
5.4.90.0060.03912.01
5.4.80.0080.03512.01
5.4.70.0060.03412.00
5.4.60.0070.03512.00
5.4.50.0050.03512.01
5.4.40.0070.03411.99
5.4.30.0050.03611.99
5.4.20.0080.03411.98
5.4.10.0080.03411.99
5.4.00.0050.04011.48
5.3.290.0110.04012.80
5.3.280.0060.04712.70
5.3.270.0080.04012.73
5.3.260.0080.03912.71
5.3.250.0080.03912.71
5.3.240.0080.04012.72
5.3.230.0070.03812.71
5.3.220.0060.04312.68
5.3.210.0070.04512.68
5.3.200.0060.03812.68
5.3.190.0080.04312.68
5.3.180.0090.03412.67
5.3.170.0060.03812.67
5.3.160.0080.03612.67
5.3.150.0090.04612.67
5.3.140.0100.03512.66
5.3.130.0100.03812.66
5.3.120.0100.03512.66
5.3.110.0090.03612.66
5.3.100.0060.03712.12
5.3.90.0060.03612.09
5.3.80.0070.03612.07
5.3.70.0050.03812.07
5.3.60.0060.03712.06
5.3.50.0090.03412.00
5.3.40.0040.03912.00
5.3.30.0080.03411.95
5.3.20.0070.03711.72
5.3.10.0040.04111.70
5.3.00.0080.03411.69
5.2.170.0050.0309.18
5.2.160.0050.0309.18
5.2.150.0060.0319.18
5.2.140.0090.0339.18
5.2.130.0070.0279.14
5.2.120.0050.0279.14
5.2.110.0030.0309.15
5.2.100.0030.0299.14
5.2.90.0070.0269.14
5.2.80.0050.0309.14
5.2.70.0050.0299.14
5.2.60.0050.0299.10
5.2.50.0050.0299.07
5.2.40.0050.0339.04
5.2.30.0070.0299.01
5.2.20.0020.0339.02
5.2.10.0080.0288.95
5.2.00.0050.0288.81
5.1.60.0050.0228.09
5.1.50.0020.0278.08
5.1.40.0050.0238.07
5.1.30.0050.0258.41
5.1.20.0050.0268.43
5.1.10.0050.0258.16
5.1.00.0020.0288.16
5.0.50.0030.0226.64
5.0.40.0060.0166.50
5.0.30.0050.0326.31
5.0.20.0040.0186.28
5.0.10.0030.0206.26
5.0.00.0050.0296.25
4.4.90.0040.0144.78
4.4.80.0050.0134.76
4.4.70.0020.0184.75
4.4.60.0030.0164.76
4.4.50.0050.0154.77
4.4.40.0030.0264.71
4.4.30.0050.0174.76
4.4.20.0050.0184.84
4.4.10.0010.0184.85
4.4.00.0030.0254.76
4.3.110.0040.0154.67
4.3.100.0010.0174.66
4.3.90.0000.0174.63
4.3.80.0020.0254.58
4.3.70.0040.0164.63
4.3.60.0040.0134.63
4.3.50.0030.0174.63
4.3.40.0040.0234.54
4.3.30.0010.0203.30
4.3.20.0030.0213.29
4.3.10.0030.0193.23
4.3.00.0030.01710.91

preferences:
142.84 ms | 939 KiB | 8 Q