The online documentation is produced by a web publishing technology created by us to read the documents origins in OpenOffice Writer (ODT) and Microsoft Word (docx) formats and produces native web and PDF versions. In this way we maintain Louder project documentation update and in sync on each of its formats.
En este capítulo se referencian los componentes y prácticas que ayudan a mejorar el rendimiento de aplicación desarrollada en Kumbia Enterprise.
Consideraciones de Rendimiento
En los siguientes apartados se recomiendan prácticas que mejoran el rendimiento de una aplicación.
Utilización de parámetros por nombre
Muchos de los componentes de framework como ActiveRecord, Router y Tag soportan parámetros por nombre. Estos permiten indicar los valores de los parámetros requeridos en cualquier orden solventando una limitación del lenguaje PHP.
Cuando se trata de mejorar el rendimiento de una aplicación es recomendable reemplazar los llamados a métodos que utilicen parámetros por nombre por arrays cuyos indices representen los nombres de estos. De esta forma se elimina el overhead que requiere evaluar mediante expresiones regulares los parámetros por nombre y así optimiza la ejecución de la aplicación.
Instalar un Cache de OpCode
Una de las mejores prácticas para mejorar el rendimiento de aplicaciones en Kumbia Enteprise en fase de producción es instalar un cacheador de código intermedio. Debido a que en esta fase archivos que contienen código PHP usualmente no se modifican, un software especializado puede cachear el codigo intermedio (codigo PHP que se ha revisado su sintaxis y se ha eliminado fragmentos innecesarios para la ejecución como comentarios y otras partes) de esta forma cada vez que se carga un archivo PHP en el compilador parte del trabajo de interpretación ya está hecho.
Normalmente los caches de código intermedio leen datos de los archivos PHP como el inodo y el dispositivo donde esta almacenado para crear un identificador único para el mismo y así evitar que un mismo archivo sea leido varias veces en una misma petición.
La eliminación de la etapa de parseo del código intermedio PHP no es la única mejora que realiza un cacheador. Otras mejoras incluyen un consumo reducido de recursos de disco duro y optimizaciones al código intermedio. Las aplicaciones que normalmente realicen peticiones cortas con una inclusión moderada de otros archivos en la misma pueden obtener mejoras hasta del 200% y 300%. Para procesos largos la optimización puede ser del 30% al 40%. En cualquier caso la mejora siempre es considerable.
La mayor ventaja de los cacheadores de código intermedio es que no requiren que la aplicación sea desarrollada bajo ningún tipo de estandar ó con algún requerimiento especial. La única limitación es que PHP debe estar instalado como un módulo del servidor ó usando FastCGI, esto se debe a que los datos del código intermedio se almacenan en memoria compartida y ésta no está disponible para modulos cgi.
Las velocidades de todas las implementaciones son en promedio muy parecidas. La opción APC no implementa optimizaciones de código intemerdio por lo que en algunas situaciones en rendimiento puede ser menor.
Sintonización del Servidor Web
Algunas optimizaciones referentes a aplicaciones desarrolladas en Kumbia Enterprise pueden ser realizadas a nivel del Web Server. A continuación se presentan las que aplican para Apache Web Server ó otros basados en él, como Oracle HTTP Server y Zend Application Server.
Eliminar encabezados innecesarios
El encabezado HTTP que contiene el tipo de servidor usado es enviado en cada respuesta que genera el servidor Web. En la mayor parte de los casos este encabezado no tiene uso aplicable y por lo tanto hace algo más grande la respuesta del servidor sin necesidad alguna.
Server: Apache/2.0.59 (Unix) PHP/5.2.9 DAV/2 Server at localhost Port 80
Este encabezado puede eliminarse cambiando en la configurción de Apache la opción ServerSignature a Off. De esta forma se puede ahorrar más de 1GB de ancho de banda para una aplicación en producción durante un mes.