Aby śledzić powołanie stworzyłem bardzo krótki przykład, w którym wymiana ma coś do zrobienia:
$value = '1_2__3___4____5_____6______1-2--3---4----5-----6------';
$s_1 = microtime(true);
for ($i = 0; $i < 1000000; ++$i) {
$r_1 = preg_replace(array('/_{2,}/', '/-{2,}/'), array('_', '-'), $value);
}
$e_1 = microtime(true);
$s_2 = microtime(true);
for ($i = 0; $i < 1000000; ++$i) {
$r_2 = preg_replace('/_{2,}/', '_', $value);
$r_2 = preg_replace('/-{2,}/', '-', $r_2);
}
$e_2 = microtime(true);
print $r_1;
print $r_2;
print $e_1 - $s_1;
print $e_2 - $s_2;
z tego wyniku:
3,69554805756
3,2879319191
Zgodnie z oczekiwaniami, nie ma znaczącej różnicy - właściwie nie ma różnicy - rozmawiamy o milionie połączeń. Ciekawe jest również to, że druga wersja jest "nieco" szybsza. Myślę, że to dlatego, że tworzenie i uruchamianie tych tablic.
Dwa słowa: profil go. – deceze
'$ start = microtime (true); // Twój kod; echo microtime (true) - $ start; '. Powtórz kilka razy i zobacz wynik. – Leri
Jestem na tym. Daj mi minutę. :) – insertusernamehere