Para seguir el llamado creé un muy corto ejemplo en el que la sustitución tiene algo que ver:
$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;
Con este resultado:
3,69554805756
3,2879319191
Como se esperaba, no hay una diferencia significativa - en realidad no hay diferencia en absoluto - ya que estamos hablando de un millón de llamadas. También es interesante que la segunda versión sea "un poco" más rápida. Supongo que es porque crear y ejecutar esas matrices.
Dos palabras: el perfil it. – deceze
'$ start = microtime (verdadero); // tu codigo; echo microtime (true) - $ start; '. Repita varias veces y vea el resultado. – Leri
Estoy en eso. Dame un minuto. :) – insertusernamehere