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.

Comments Off

  • 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 [...]

  • Alfonso Sánchez

    Gracias, están bien los recordatorios.

    Es importante en producción que el código vaya ligero, así como implementar una caché para evitar ejecutarlo lo máximo posible jejeje.

    Como pequeño aporte, un poco al margen porque es de SEO más que de PHP, la velocidad no afecta al PageRank. El PageRank es una métrica de calidad de enlaces, la velocidad es una métrica de calidad interna del sitio, ambas afectan al posicionamiento, pero son dos asuntos diferentes.

blog comments powered by Disqus