PHP es un lenguaje muy flexible a la hora de crear sitios web dinámicos, por lo que este es uno de los mejores lenguajes. Aunque lo que hace que sea tan fácil de usar, al mismo tiempo se convierte en algo negativo para este lenguaje, por ejemplo, cuando ejecutamos código PHP, podemos hacerlo directamente sin compilarlo, ya que este se lee desde un archivo, se compila y se ejecuta automáticamente, sin que sea necesario realizar pasos adicionales al publicar un sitio web.
PHP tarda tiempo en leer los datos desde el disco, y los scripts se vuelven lentos cuando usamos muchos includes y requires, por lo que la solución a todo esto no es utilizar otro lenguaje de programación web, si no algo más coherente.
Existen diferentes formas de optimizar, primeramente se debe optimizar el código:
- Utilizar funciones que ya existen en el núcleo de PHP, en lugar de funciones creadas por nosotros mismos. Si hay distintas formas de realizar lo mismo con diferentes funciones, hay que buscar benchmarks, y escoger la forma más rápida para realizar una tarea.
- Hay algunas recomendaciones en cuanto a escribir el código, por ejemplo, no se recomienda el uso de los supresores de errores en las funciones y variables como lo es anteponer @, ya que hacer esto vuelve los scripts lentos.
- Usar condiciones para cargar partes de nuestro script, un buen sistema realizado en PHP, debe estar bien estructurado, y qué mejor forma que separar las funciones, y solo incluirlas cuando se necesitan por medio de condiciones.
- No es necesario usar PHP para hacer todo, como es conocido, se puede escapar código HTML, para que no sea leído por PHP, y así se ahorra un poco de CPU al procesar el código PHP, por lo que siempre se recomienda imprimir directamente lo que sea posible, sin necesidad de pasarlo a través de PHP.
Adicionalmente, algo que no viene a la optimización directa del código:
- Usar opcodes para cachear el código en la memoria RAM, y así acelerar el tiempo de acceso a los archivos, y así no se tiene que compilar PHP cada que se ejecuta. Existen varios opcodes, uno de los tantos es APC (PHP APC) el cual recomiendo ampliamente, que sirve como opcode, y al mismo tiempo como un sistema para guardar cadenas así como con Memcached.
Este artículo está como complemento a Consejos para reducir uso de memoria de PHP y optimizaciones, escrito anteriormente por mí mismo.