Optimiza tu codigo PHP

Escrito por: J.P. Aulet el 01 Abr 2011 - Tags: , , , , ,

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.

View Comments

  • http://bitacoras.com/anotaciones/optimiza-tu-codigo-php/17794829 Bitacoras.com

    Información Bitacoras.com…

    Valora en Bitacoras.com: 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 otr…..

  • http://www.webserveis.com/160/consejos-para-optimizar-php-ii/ Webserveis » Post Topic » Consejos para optimizar PHP II

    [...] Vía: PHP Benchmark y sindikos [...]

blog comments powered by Disqus