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

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: 鈥淣o 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: 鈥淯sa 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: 鈥淯sa 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: 鈥淣o 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: 鈥淯sa 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.

Ya vi los ejemplos y la

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... ;)

Enviado por UniversidadPeru (no verificado) el Jue, 07/02/2009 - 09:41.
Te cuento que algo similar

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 :)

Enviado por baluart el Jue, 07/02/2009 - 22:10.

Deja tu comentario

El contenido de este campo se mantiene privado y no se mostrar谩 p煤blicamente.
  • Las direcciones de las p谩ginas web y las de correo se convierten en enlaces autom谩ticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos autom谩ticos de l铆neas y de p谩rrafos.

M谩s informaci贸n sobre opciones de formato