sep 21, 2010

Enviado por en PHP, WWW

Acelerar carga de páginas basadas en PHP

Efectivamente, ya me tocaba estrenar el nuevo diseño de Kernel Error, aunque para ser sincero no solamente es un lavado de cara sino que también se enfoco que este nuevo diseño fuera más rápido, fluido y sin tantas “Cruzes” de las que tanto se quejaron…

Dicho eso, que tenia que ser forzosamente dicho, explicaré brevemente con una palabra lo que trataré que sea el ejemplo después de las técnicas de acelerado; Rápido! Listo ahora, si quieren que esa sea la descripción de sus páginas sugiero que continuen leyendo.

Explicaré unos modelos para acelerar la carga, unos mas sencillos que otros.

1 Agregar Cache.

Si, cuando uno maneja mucho peticiones ya sea a una base de datos, a un fichero externo o dentro del entorno o simplemente algunas funciones “inficientemente” programadas (indistintamente que tipo de base es o si tu servidor tiene 4 TB de RAM) esto alenta la carga de la página mas que si tenemos el contenido “pre cargado” en ya sea:

  • En la memoria compartida, normalmente RAM aunque algunos proveedores de alojamiento por tacaños manejo de costos prefieren crear una partición virtual.
  • En un directorio, tal como el famoso /tmp/ de distribuciones UNIX-like o su homologo en algunas configuraciones de Debian (la mayoria de las veces) /var/cache.
  • En una partición específica, para los Amantes de la velocidad no solo en diseño de páginas sino que a nivel servidor, tienen un disco duro de altas velocidades en donde guardan todos estos archivos temporales, aunque para nuestro proyecto, esto no será necesario.

Para agregar cache a tu página en PHP agradeciendo a trabajos de terceros, hay formas bastante sencillas, tales como instalar módulos como, por mencionar algunos: Memcache y eAccelerator, de este último ya tenemos una guia de instalación, solamente cambien la URL del Wget a la más actual (por si no era obvio).

Por supuesto que también existen otros métodos como los llamados plugins que gracias al trabajo de otros podemos descargar los plugins la mayoria de las veces gratis, si es que su sitio en PHP funciona con un CMS; para Joomla! existe QueryCache, para WordPress existe HyperCache, (de hecho para wordpress existe una gran mayoria de plugins para este proposito, pero elegí HyperCache, por azar, no empezemos un flamewar)

Y aveces hay proyectos que simplemente incluyen sus sistema de cache como lo es Drupal, y la versión 3+ de WordPress

2 Comprimir el output.

La mayoria de los exploradores web, considerado la mayoria desde la muerte de IE6 , acepta que el contenido se envie comprimido mediante GZIP, esta opción puede ser por mucho la mas sencilla de implementar, pero también puede generar estrés para el CPU no solo del servidor, sino que también para el cliente. Aunque claro, si tu página sea de mas de 90mb deberias preocuparte, de lo contrario, esta puede ser muy buena alternativa O complementación para el cache.

Si suena muy bien. ¿Y como lo hago?

Agregando el siguiente código al inicio de tu script, no te apures, detectará automáticamente PHP si no soporta compresión el explorador:

<?php
if(!ob_start("ob_gzhandler")) ob_start();
?>

O alternativamente agrega esto en tu htaccess, si usas apache, o en tu archivo de configuración si usas nginx aunque pierdes el detectado automático.

php_flag output_buffering On
php_value output_handler 'ob_gzhandler'

Bueno, eso seriá todo solo como nota de pie agrego que gracias a estas prácticas Kernel Error carga (registrado desde mi PC, resultados varian dependiendo de Ordenador, Ancho de banda y distancia del servidor) de 3.7s ignorando el cache del explorador (Firefox 3.6.10).

    Posts Relacionados

    Menciones/Notificaciones

    1. plus size clothing wholesale - ranks high are page rank and back-linking.page... ranka great way to earn a decent page ranking in the search engines is ...
    2. mobile website examples - writers.alternately, you can also type in specific... queries, like 'seo writer india' if you want to outsource your seo content writing ...

    Dejar una respuesta

    Debes ser Alojarse para enviar un comentario.