Existen muchas variables que pueden afectar el rendimiento de su aplicación. Recomiendo que no asuma instantáneamente que PHP es el problema.
En primer lugar, ¿cómo se sirve a PHP? ¿Has probado la optimización básica de Apache o IIS? ¿El servidor está ocupado procesando otros tipos de solicitudes? ¿Has aprovechado un PHP code accelerator? Una forma de probar si el servidor es su cuello de botella es intentar ejecutar la aplicación en otro servidor.
En segundo lugar, ¿el rendimiento de toda la aplicación es lento o solo parece afectar ciertas páginas? Esto podría darle una indicación de dónde comenzar a analizar el rendimiento. Si toda la aplicación es lenta, el problema es más probable en el servidor/plataforma subyacente o con una consulta SQL global que es parte de cada solicitud (autenticación de usuario, por ejemplo).
En tercer lugar, mencionó la minimización del número de consultas SQL, pero ¿qué hay de la optimización de las consultas existentes? Si está utilizando MySQL, ¿está aprovechando las diversas fortalezas de cada sistema de almacenamiento? ¿Ha ejecutado EXPLAIN en sus consultas más importantes para asegurarse de que estén correctamente indexadas? Esto es crítico en consultas que acceden a tablas grandes; cuanto mayor sea el conjunto de datos, más notarás los efectos de una mala indexación. Afortunadamente, hay muchos artículos such as this one que explican cómo usar EXPLAIN.
En cuarto lugar, un error común es suponer que su servidor de base de datos utilizará automáticamente todos los recursos disponibles para el sistema. Debe verificar que haya asignado recursos suficientes explícitamente a su aplicación de base de datos. En MySQL, por ejemplo, tendrá que añadir los ajustes personalizados (en el archivo my.cnf) para cosas como key buffer, el tamaño de tabla temporal, concurrencia hilo, tampón innodb tamaño de la piscina, etc.
Si usted tiene verificó dos veces todo lo anterior y todavía no puede encontrar el cuello de botella, definitivamente un analizador de código como Xdebug puede ayudar. Personalmente, prefiero el generador de perfiles de Zend Studio, pero puede que no sea la mejor opción a menos que ya estés aprovechando el resto de la pila de Zend Platform. Sin embargo, en mi experiencia, es muy raro que PHP sea la causa principal del bajo rendimiento. A menudo, un generador de perfiles de código puede ayudarlo a determinar con mayor precisión qué tipo de consultas de DB son las culpables.
Excelente. Esta publicación realmente ayudó. Gracias. – verisimilitude