Optimiza tu codigo PHP
Para mejorar la velocidad una página web se pueden hacer muchas cosas, cómo comprimir los archivos a GZIP, comprimir nuestros archivos CSS y javascript, hacer menos consultas HTTP (agrupando archivos) y un largo etc. Pero otra forma és mejorando la velocidad del código PHP. Esto hace que la carga del servidor sea menor y que Google indexe mejor nuestro sitio al condicionar el PageRank a la velocidad de carga. Para esto, unos sencillos trucos para mejorar el código*:
- implode y join: implode es un 5% más rápida.
- for y while: for és un 4% más rapido.
- echo y print:
echo ‘foo’.'bar’.'foo’.'bar’ vs print ‘foo’.'bar’.'foo’.'bar’ : echo es un 4% más rapido
echo ‘foo’.'bar’.'foo’.'bar‘ vs $a=’foo’;$b=’var’; echo $a.$b.$a.$b : sin variables és un 300% más rapido
- sizeof y count: count es un 12% más rápida.
- is_int y is_integer: is_int es un 9% más rápida.
- isSet y empty: Los dos son identicos, pero cuidado con:
is_array de un array: 160% más lento
is_array de un valor nulo: 1078% más lento
(isSet && _array) de un valor nulo: 542% (no se ejecuta el ‘is_array’) más lento
Por lo tanto, siempre comprovaremos si el valor existe antes de preguntar si es un array.
- ini_alter y ini_set: ini_set es un 19% más rápida.
- foreach y while:
foreach($foo as $key=>$val) $foo[$key] .= “bar”; vs. while(list($key) = each($foo)) $foo[$key] .= “bar”; : while és 211% más rápido
Truco:
$key = array_keys($foo);
$size = sizeOf($key);
for ($i=0; $i<$size; $i++) $foo[$key[$i]] .= “bar”;
Esta forma és un 72% más rapida que ‘while’, por lo tanto un 263% mas rapida que ‘foreach’
- preg_match vs. strpos: strpos és un 51% más rapido (strstr y ereg són aún más lentos).
- if es más rápido que switch/case, y ligeramente más rápido es usar == que ===
- Si un metodo puede ser static declararlo así. Es 4 veces más rápido.
- Incrementar una variable local indefinida és unas 9 veces más lento que una pre-inicializada. Siempre inicializar todas las variables.
- LO MÁS IMPORTANTE: no usar funciones dentro de loops. Por ejemplo:
$size = count($x); for ($i=0; $i<$size; $i++) vs. for ($i=0; $i<count($x); $i++) : pre-calcular el tamaño és entre un 1500% i 47940% más rapido (dependiendo del tipo de dato pre-calculado).
Aplicando todas estas tecnicas podemos aumentar considerablemente el rendimiento del PHP.
Vía: PHP Benchmark y pruebas propias.
*Atención: Los resultados de las pruebas puede variar en otros entornos, los datos expresados en % són medianas de varias pruebas y son sólo una referéncia de la mejora del rendimiento y no son, por lo tanto, iguales en todos los sitios, debido a diferencias en el compilador, los tipos de datos usados, la versión de PHP usada y un largo etc.

