La comunidad de PHP responde a Google sobre Tips de Optimización

Balu2 Julio 2009 - 8:06am 3 comentarios
Enviar por Email Imprimir

Vía phpdeveloper me entero que Google ha publicado una guía de optimización para acelerar las páginas con PHP. Pero lo interesante no son los consejos, sino, en mayor medida, la respuesta que la comunidad de PHP ha hecho. Y es que al parecer, varios de los consejos para acelerar aplicaciones en PHP que ofrece Google ya no son viables. Veamos las respuestas más interesantes, una por una...

Tips para mejorar la performance de PHP

Google: “No copies variables sin ninguna razón”

El motor de Zend en el core de PHP4 y PHP5 usa una técnica para el manejo de memoria conocida como copiar al escribir (copy-on-write). Esto quiere decir que no importa cuantas veces asignemos el valor de una variable a otra variable, los datos no son copiados hasta que se modifiquen. El ejemplo que el autor ofrece resulta obsoleto ya que no significa un uso extra de memoria, como se puede apreciar del siguiente ejemplo:

<?php
$data
= str_repeat("*", 512 * 1024); // synthesize 512K of data
$memory_used_before = memory_get_usage();
$more_data = $data;
$memory_used_after = memory_get_usage();
print
"Before: {$memory_used_before}\nAfter: {$memory_used_after}\n";
?>

PHP 5.3 with thread-safety and debugging compiled in:
Before: 853968
After: 854236

PHP 5.2 without thread-safety or debugging:
Before: 581912
After: 581976

Una diferencia de 268 bytes en el modo debugging, o 64 bytes en modo normal (lo que las personas usan).

Hay que destacar que un script PHP nunca debe hacer un echo o mostrar el contenido en bruto de una variable suministrada por un usuario sin el filtro correspondiente.

Google: “Usa comillas simples para strings”

Benchmarks realizados en PHP 5.2 y PHP 5.3 demuestran que parsear strings en comillas dobles con interpolación no es más lento (y algunas veces más rápido) que usar strings con comillas simples usando concatenación. Cuando tenemos strings sin variables, la performance es definitivamente mejor con comillas dobles, esto se debe a ciertos detalles implementados en el motor. Pueden ver el benchmark publicado en <http://pastie.org/523023>.

Google: “Usa echo para imprimir”

Dependiendo de la manera en que PHP esta configurado en tu Hosting, echo puede ser más lento que print en algunos casos. En el ejemplo que Google muestra, ambos tienen igual performance.

Google: “No uses concatenación con echo”

Esto es exactamente lo contrario a un buen consejo. El motor maneja múltiples argumentos para echo() de tal manera que la concatenación (o la interpolación de string con comillas dobles) es actualmente mucho más rápido. Pueden ver el benchmark publicado en <http://pastie.org/523020>.

Google: “Usa switch/case en vez de if/else”

Finalmente, esta parte de los consejos no tiene ningún sentido. La decisión sobre usar switch/case o if/else es puramente una cuestión de estilo al programar; sus velocidades son generalmente más o menos iguales, exceptuando casos especiales.

Estas son sólo algunas de las respuestas que se están publicando en atención a la guía publicada por Google, pueden leer más en este hilo de Google Groups, incluyendo las respuestas del autor de la guía de Google.

Comentarios

Imagen de UniversidadPeru

Ya vi los ejemplos y la lógica... pobre el ingeniero de Google que hizo esas afirmaciones... sin embargo, en su defensa, he visto ese mismo tipo de afirmaciones, "tips" y consejos en otras webs, y seguramente él lo tomó como cierto sin hacer ninguna prueba previa al respecto...

Sería interesante si podrías hacer un counter-post indicando cual, o cuales de las recomendaciones SI son útiles y válidas para buscar implementarlas en la medida de lo posible... ;)

Imagen de baluart
baluart

Te cuento que algo similar ocurrió hace meses con un post de Smashing Magazine 10 Advanced PHP Tips To Improve Your Programming, pero luego de la gran cantidad de críticas, el propio blog decidió publicar una nueva lista de tips (en marzo), esta vez revizadas por dos gurus de PHP (Chris Shiflett y Sean Coates), la respuesta a este post ha sido muy positiva por la comunidad (aunque siempre hay quienes no estan deacuerdo, en este caso pocos). El post es 10 Advanced PHP Tips Revisited. Saludos :)

Imagen de Misat
Misat

Hay tiene para los que se creen sabelotodo jajaj , hasta el mismo grupo de php afirma lo contrario ahi si nada que alegar

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más