pon css en tu vida!

css, html, javascript, php y mucho mas…

Posts etiquetados con ‘ optimización ’

Hace un par de días, encontré esta comparativa entre tres de los sistemas que podemos utilizar en PHP para cachear grandes arrays de datos , comprimiendolos y almacenándolos en archivos.

Es este artículo, se utilizan 3 métodos distintos:

La prueba para obtener a un ganador entre estos tres métodos fué la siguente:

Se utilizaron 5 conjuntos de datos, con diferentes tamaños (de memoria utilizada): 904B, ~18kB, ~250kB, ~4.5MB and ~72.5MB.

A estos conjuntos se los sometió a 10 codificaciones/decodificaciones, calculando el tamaño del archivo generado, y el tiempo tardado en relaizar cada operación.

optimizacion-big-array

Click para ampliar

Los resultados son bastante reveladores:

  1. El método con mayor ratio de compresión es JSON.
  2. Hasta que no lidiamos con cantidades “ingentes” de datos ( más de 30Mb), los mejores resultados se obtienen con serialize/unserialize.
  3. A partir de los 30Mb, el rendimiento de serialize/unserialize disminuye casi exponencialmente.
  4. A partir de los 30Mb, JSON se convierte en el método más eficaz.

Más información sobre cómo y dónde se realizó la comparativa, así como más gráficas, en el artículo original: Cache a large array JSON serialize or var_export

Google te ayuda a optimizar tu código PHP.

26.06.09 PHP, google, optimización Sin comentarios, aún...

ACTUALIZADO.

En Baluart.net encontramos una recopilación de las correcciones que la comunidad de usuarios de PHP ha hecho al artículo publicado por Google que se comenta en esta entrada.

Es importante que leas el artículo, pues rebaten muchas de las afirmaciones con códigos de ejemplo y tiempos de ejecución. Así, sabrás realmente a qué acogerte a la hora de programar.

Es curioso saber que los programadores de Google también se equivocan :)

Si hace un par de días comentabamos unos consejos para optimizar javascript, hoy le toca el turno a PHP.

De la mano de Google y su nueva sección Let’s make the web faster, encontramos PHP performance tips, una recopilación de consejos para programadores de PHP que nos ayudarán a mantener nuestros sitios más rápidos y optimizados.

Veamos algunos de los consejos que Eric Higgins, Webmaster de Google, nos ofrece:

Mantén actualizada tu versión de PHP.

¿Aún sigues utilizando PHP4? Las nuevas versiones de PHP están optimizadas para mejorar su rendimiento, por lo que deberías, al menos, dar el salto a PHP5. Hoy en día la mayoría de servicios de hosting ya ofrecen servidores con PHP5 instalado, para que puedas migrar tus páginas sin miedos.

Utiliza la caché en tus sitios.

Utilizando un modulo para cachear los resultados como Memcache, o mediante un sistema de templates que lo soporte, como Smarty, podemos mejorar la velocidad de nuestras páginas cacheando los resultados de las consultas a la base de datos, o las páginas renderizadas.

Utiliza el buffer de salida.

PHP utiliza un buffer de salida para almacenar toda la información que tratamos de imprimir desde nuestros scripts. Este buffer puede disminuir el rendimiento de nuestras páginas, ya que no muestra la información al usuario hasta que no se llena.

Afortunadamente, podemos modificar el comportamiento del buffer para que muestre los datos más frecuentemente.

Más info sobre el buffer de salida de PHP.

Usa comillas simples para los strings.

A la hora de delimitar un string, PHP permite hacerlo de dos formas diferentes; utilizando ‘comillas simples’ o “comillas dobles”. Sin embargo, existen diferencias entre ambos métodos. Si utilizamos comillas dobles, PHP buscará variables dentro de la cadena, y si las encuentra, insertará su valor correspondiente. Esto puede significar una bajada de rendimiento, sobre todo si utilizamos strings sin variables dentro.

Sustituye los print por echo.

El rendimiento de la función echo es mayor que el de print. Además, la función echo puede recibir un número ilimitado de parámetros, por lo que no es necesario concatenar el string que le pasamos a la función. Es decir:

$uno = 1;
$dos = 2;
$tres = 3;
// Típica concatenación para utilizar con echo
echo 'Vamos a contar hasta tres: ' . $uno . ' ' . $dos . ' y ' . $tres;

// Sin embargo, no necesitamos concatenar la cadena
// antes de pasarla a echo, puesto que esta función
// puede recibir el número de parámetros que
// deseemos
echo 'Vamos a contar hasta tres: ', $uno, ' ', $dos, ' y ', $tres;

// Y el resultado, en ambos casos será el mismo:
// "Vamos a contar hasta tres: 1 2 y 3"

En el ejemplo anterior el resultado es exactamente el mismo, y sin embargo evitamos la carga de tener que concatenar el string antes de pasar la cadena al buffer de salida.

Leer el artículo completo en Google Code.

optimiza javascript jQuery

Los chicos de NetTuts nos explican detalladamente, 10 técnicas para optimizar nuestro código javascript creado con jQuery.

Casi todos los navegadores actuales (Firefox, Safari, Chrome, Opera) poseen motores de javascript lo suficientemente potentes como para que en temas de optimización, las mejoras que obtenemos deban medirse en milisegundos, sin embargo, Microsoft con sus Internet Explorer aún sigue siendo el rival a batir, por lo que nunca está de más adoptar estas sugerencias como costumbre habitual.

Además, si algún día nos enfrentamos a un proyecto que haga un uso intensivo de javascript, notaremos la diferencia.

Algunos de los consejos son:

Utiliza siempre la última versión de jQuery.

Google dispone de una API de Bibliotecas AJAX para el acceso a las versiones de los frameworks de javascript más importantes, como son jQuery, Prototype, script.aculo.us, Mootools, etc. Este método nos permite estar siempre actualizados con la última versión de jQuery, sin embargo, debes tener en cuenta que aunque no pase muy a menudo, Google puede estar caído y entonces no podremos acceder a la librería.

Usa FOR en vez de EACH

Los métodos nativos siempre son más rápidos que cualquier helper de un framework. Recorrer un array de n elementos mediante $.each es alrededor de 10 veces más lento que hacerlo mediante un for.

Selecciona por #id y no por .clase

A la hora de seleccionar un elemento con jQuery, encontramos que es mucho más rápido hacerlo por su atributo id que no por su clase. ¿Porqué? jQuery utiliza en caso de utilizar el id, el método getElementByID(), nativo del navegador.

Cuando no sea posible seleccionar un elemento por su id, es recomendable especificar el contenedor más cercano a este que contenga un id.

Es decir:

$(”#contenedor .enlaces a”)

será mucho más rápido que

$(”.enlaces a”)

No olvides el return false

Añade return false; al final de tus funciones, para evitar comportamientos inesperados como el típico “salto” al principio de la web.

Articulo completo | 10 Ways to Instantly Increase Your jQuery Performance

Google Page Speed es una extensión para Firefox, creada por Google, que nos permitirá optimizar nuestras páginas para que carguen y se muestren más rápido, mejorando así la experiencia de usuario en nuestra web.

Google Page Speed

Utilizada desde hace tiempo por Google para mejorar el rendimiento de sus aplicaciones (Google Reader, GMail, etc.), ahora ha sido liberada para que todos podamos disfrutar de ella.

Page Speed se integra con Firebug, y recopila información de tu web para sugerirte que puedes modificar para mejorar el rendimiento (reducir el peso de las imágenes, tamaño de los CSS, comprimir tu código javascript…), basandose en un documento de buenas prácticas que se implementan tanto en Google como en otros muchos sitios web.

Pero Page Speed no se queda ahí, y avanza un paso más ofreciendo soluciones para los problemas que detecta. Por ejemplo, te ofrece una versión más optimizada de tus imágenes, comprime directamente el código javascript (mostrando el porcentaje de reducción, para que veas si vale o no la pena modificarlo) y te avisa del código CSS que no se está utilizando el la página en ese momento, por si puede ser interesante eliminarlo.

Con todas estas cualidades, se situa un paso por delante de YSlow de Yahoo!, y se convierte en una herramienta casi indispensable a la hora de desarrollar cualquier proyecto web.

Más información sobre Google Page Speed

Descargar Google Page Speed