17 métodos para optimizar el rendimiento de Laravel
Publicado: 2022-05-25¿Está buscando formas exitosas de acelerar el rendimiento de Laravel mientras trabaja en su proyecto? ¡Has venido al lugar correcto!
Laravel es un marco PHP de código abierto popular que es conocido por su sólida seguridad y su arquitectura de codificación simple pero sofisticada. Es una excelente opción para crear aplicaciones web de vanguardia capaces de generar ingresos e impulsar las empresas.
Aún así, el rendimiento de Laravel puede volverse lento si no utiliza las técnicas de optimización adecuadas.
Afortunadamente, existen numerosos trucos para maximizar el rendimiento de Laravel. Hemos reunido una lista de los consejos de optimización más efectivos que puede seguir.
¿Por qué es tan importante la optimización del rendimiento de Laravel?
Los desarrolladores deben prestar mucha atención al rendimiento de cada aplicación de Laravel antes de lanzarla para garantizar su éxito. Es una de varias cualidades que debe poseer un desarrollador de Laravel.
Optimizar el rendimiento de Laravel con ajustes de código y comandos puede ayudar a lograr esto y también puede tener una gran influencia en la eficiencia de su aplicación.
¿Laravel es lento?
Laravel es un marco rápido que viene con una gran cantidad de características y funciones (por ejemplo, Memcache, soporte de base de datos, Redis, etc.) para ayudar con el rendimiento. Laravel también permite a los profesionales del software producir código robusto con relativamente poco esfuerzo para cumplir con los objetivos de sus proyectos, grandes o pequeños.
Dado que los datos se almacenan como pares clave-valor en la memoria RAM del servidor, los usuarios pueden almacenar en caché todo lo que deseen para mantener sus aplicaciones o sitios de manera rápida y sin problemas. Basado en Google Trend, Laravel es actualmente la herramienta de back-end más popular para PHP.

El Laravel 9 lanzado recientemente ofrece nuevas mejoras de rendimiento. Por ejemplo, tiene especificaciones mínimas de PHP y requiere Symphony 6.0, que se ejecuta un 20,65 % más rápido en PHP 8.1. El nuevo diseño del comando route:list ahora reduce la vista desordenada de los comandos complejos. Laravel 9 también incluye una interfaz de creación de consultas más eficiente y muchas más características.
Sin embargo, algunos factores contribuyen a un rendimiento lento de Laravel. Muchos desarrolladores tienen malos hábitos, como cargar una gran cantidad de imágenes pesadas, usar versiones antiguas de PHP, compilar volúmenes masivos de datos innecesarios o no eliminar archivos innecesarios de sus proyectos.
La sofisticada arquitectura MVC PHP de Laravel y las bibliotecas asociadas brindan una excelente combinación de seguridad, rendimiento y facilidad de uso. Es por eso que es una buena regla general aprender algunos trucos de optimización de Laravel para lograr un mayor rendimiento.
La velocidad del sitio web importa
Las primeras impresiones son duraderas para cualquier imagen de marca. La velocidad del sitio web es la primera impresión que da a los visitantes de su sitio web. ¿Sabía que alrededor del 50% de los clientes en línea abandonan los sitios web que tardan más de tres segundos en cargarse?

La velocidad del sitio web (también conocida como rendimiento del sitio web) se refiere a la cantidad de tiempo que le toma a un navegador cargar páginas web completamente operativas desde un sitio web específico. Por lo tanto, tiene un impacto directo en la experiencia del usuario (UX) y las tasas de conversión.
El rendimiento del sitio web también afecta su clasificación SEO en los motores de búsqueda. Si varios sitios ofrecen la información que busca su visitante, las páginas web más rápidas aparecerán primero. Si su sitio es lento, será menos probable que obtenga una clasificación alta en los resultados de búsqueda de Google.
En consecuencia, debe invertir algo de tiempo en aplicar soluciones efectivas de optimización del rendimiento del sitio web.
Beneficios de la optimización del rendimiento de Laravel
Si bien es posible que haya diseñado una aplicación Laravel fantástica, siempre hay margen de mejora para alcanzar la perfección. Aumentar el rendimiento de Laravel tiene una serie de beneficios:
- Impulsar el crecimiento empresarial: el rendimiento mejorado de Laravel significa un sitio web o una aplicación más eficiente. Como resultado, aumentan sus posibilidades de llegar a un público más amplio.
- Entorno de desarrollo más fluido: los consejos de optimización del rendimiento para Laravel que se enumeran a continuación ayudan a los desarrolladores a ahorrar más tiempo en la codificación, ejecutar tareas más rápido y consumir menos recursos.
- Manejar mejor el tráfico: aprender a usar inteligentemente el sistema de colas de Laravel ayuda a su sitio web a administrar el número de solicitudes a medida que crece y obtiene una gran cantidad de tráfico.
Cómo medir el rendimiento de Laravel
Ha dedicado mucho tiempo y esfuerzo para que su elegante aplicación web funcione, pero si es lenta, nadie la usará y será como un oso con dolor de cabeza. Aquí es donde entran las pruebas de rendimiento de Laravel.
Puede usar una variedad de herramientas para realizar pruebas de rendimiento en su preciada creación. Echemos un vistazo a tres de ellos.
1. Blackfire.io

Blackfire.io es un generador de perfiles de aplicaciones web intuitivo que identifica las vías esenciales para que pueda concentrarse en las áreas importantes de su aplicación PHP.
Incluye varias funciones de supervisión del rendimiento y muestra el uso de la memoria, el tiempo de la CPU y la E/S. Blackfire.io también le permite ordenar llamadas de funciones y rutas para ver cómo funciona su aplicación Laravel.
2. Anochecer de Laravel

Laravel Dusk te permite probar tu aplicación y comprobar cómo funciona desde la perspectiva del usuario. No necesita instalar Selenium o JDK para usar Dusk, ya que incluye Chromedriver de manera predeterminada.
Con una API amigable para desarrolladores como Dusk, puede automatizar las pruebas del navegador, evitando la necesidad de los procesos rigurosos requeridos por ChromeDriver y PHP WebDriver por separado.
Además, Dusk almacena capturas de pantalla y la salida de la consola del navegador de la prueba fallida para que pueda detectar cualquier error.
3. Forja de carga

Diseñado para Laravel, LoadForge escanea su sitio web automáticamente, identifica problemas y proporciona gráficos completos junto con estadísticas de rendimiento para cada página.
En Chrome, LoadForge le permite capturar acciones del navegador y luego convertirlas en una prueba de LoadForge. De esta manera, podrá crear una experiencia de usuario realista al simular que inicia sesión, navega por su sitio web o incluso realiza pedidos.
Cómo optimizar el rendimiento de Laravel (17 métodos)
En esta sección, repasaremos algunas de las mejores ideas y tácticas con un peine de dientes finos para ayudarlo a mejorar su rendimiento de Laravel.
1. Almacenamiento en caché de rutas
El almacenamiento en caché de rutas es una característica excelente, especialmente para aplicaciones con una gran cantidad de configuraciones y rutas repartidas por el código. Es un grupo de rutas empaquetadas en un solo comando para ayudar a reducir la tediosa tarea de trazar sus rutas manualmente. Como resultado, las páginas de su sitio web se cargarán mucho más rápido.
El almacenamiento en caché de rutas permite a Laravel recuperar rutas periódicamente desde el caché precompilado en lugar de tener que comenzar desde cero para cada nuevo usuario.
Utilice este comando para almacenar en caché los datos de enrutamiento necesarios:
php artisan route:cache
Tenga en cuenta que el caché caduca cuando el usuario abandona su sitio. También es importante ejecutar ese comando de caché de ruta cada vez que realice cambios estructurales (por ejemplo, archivos de rutas y configuración) en su sitio web, ya que las modificaciones realizadas después no surtirán efecto.
Si desea borrar la caché de ruta, ejecute el siguiente comando:
php artisan route:clear
2. Optimizar compositor
Laravel usa una herramienta separada llamada Composer para administrar diferentes dependencias. Cuando instala inicialmente Composer, carga las dependencias de desarrollo en su sistema de forma predeterminada.
Estas dependencias son útiles para desarrollar un sitio web. Pero una vez que su sitio está completamente operativo, ya no son necesarios y, de hecho, solo lo ralentizarán.
Cuando utilice Composer para instalar paquetes, use los parámetros --no-dev
y -o
de la siguiente manera para eliminar las dependencias de desarrollo:
composer install --prefer-dist --no-dev -o
Este comando permite a Composer crear un directorio para optimizar el cargador automático y aumentar el rendimiento. Simplemente solicita que se recupere y empaquete la distribución oficial, sin dependencias de desarrollo.
Tenga cuidado de no eliminar ninguna dependencia de tiempo de ejecución. Esto podría poner en peligro el rendimiento de su sitio web o incluso provocar que se bloquee.
3. Reducir los servicios cargados automáticamente
El objetivo de Laravel es hacer que el proceso de desarrollo sea lo más sencillo posible para los desarrolladores. Cuando inicia Laravel, por ejemplo, carga automáticamente un gran volumen de proveedores de servicios enumerados en el archivo config/app.php para ayudarlo a comenzar con su proyecto rápidamente.
Si bien este es un paso beneficioso de Laravel, no necesitará usar todos estos servicios para crear una aplicación.
Tome la API REST, por ejemplo. No necesita servicios como View Service Provider o Session Service Provider. Además, muchos desarrolladores no siguen la configuración predeterminada del marco. Simplemente puede deshabilitar los servicios que son superfluos para sus necesidades (por ejemplo, proveedor de servicios de paginación, proveedor de servicios de traducción, proveedor de servicios de autenticación, etc.).
Podrás mejorar la velocidad de tus aplicaciones Laravel aplicando el mismo principio a otras aplicaciones. Solo asegúrese de no eliminar ningún servicio importante y vuelva a verificar todo antes de soltar el martillo.
4. Use los comandos y el caché de Artisan de manera efectiva
Artisan es una popular herramienta de línea de comandos que viene con Laravel. Facilita a los desarrolladores la realización automática de tareas recurrentes y complejas. Los creadores de sitios web también pueden usarlo para realizar pruebas y generar comandos.
El uso inteligente de los comandos de Artisan puede mejorar el rendimiento de su aplicación. A continuación, enumeramos varios de los mejores comandos de almacenamiento en caché que puede utilizar.
Caché de configuración
Cache config es un comando excelente para aumentar la velocidad. Compila todos los valores de configuración de su aplicación en un archivo para que el marco pueda cargarse más rápido. Todo lo que necesitas es ejecutar:
php artisan config:cache
Tenga en cuenta que no debe ejecutar el comando config cache durante el desarrollo local. Esto se debe a que es posible que los ajustes de configuración deban cambiarse con frecuencia durante el desarrollo de su aplicación.
Para borrar el caché de configuración, ejecute este comando:
php artisan config:clear
Almacenamiento en caché de vistas
El caché de vista es otro aspecto de la aplicación que contiene un caché. La caché de vista almacena plantillas Blade generadas para aumentar la velocidad de su proyecto. Puede usar el comando artesanal a continuación para compilar todas las vistas manualmente y optimizar el rendimiento:
php artisan view:cache
Recuerde borrar el caché cuando cargue un nuevo código; de lo contrario, Laravel usará sus vistas anteriores y pasará mucho tiempo tratando de solucionar este problema. Ejecute este comando para borrar la memoria caché de la vista:
php artisan view:clear
Almacenamiento en caché de aplicaciones
Este es el caché principal en Laravel. Guarda todos los datos que almacena en caché manualmente en su aplicación. El uso del caché de Laravel es un enfoque inteligente para acelerar los datos de acceso común y optimizar el rendimiento de Laravel. Si usa etiquetas o almacenamiento en caché múltiple, puede vaciar solo ciertos elementos del caché.
Aquí está el comando artesanal para borrar el caché de Laravel:
php artisan cache:clear
Tenga en cuenta que este comando no eliminará ninguna ruta, configuración o vista de caché ubicada en la carpeta /bootstrap/cache/.
5. Reduzca el uso de paquetes
Como marco de código abierto con una comunidad poblada, es natural ver más y más paquetes lanzados o nuevas versiones en paquetes existentes en Laravel. Eres libre de usarlos y sus características directamente en tu aplicación.
Debe incluir estos paquetes en el archivo composer.json
. Posteriormente, Laravel los instalará junto con sus dependencias.
Sin embargo, hay algunos factores a considerar antes de agregar nuevos paquetes a cualquier aplicación. No todos están diseñados para el mismo propósito, por ejemplo. Algunos paquetes también se crean para realizar una amplia gama de funciones.
Cuando incluye paquetes con muchas dependencias, el tamaño de la aplicación crece y su rendimiento eventualmente se ve afectado. Por eso es fundamental revisar detenidamente las dependencias antes de agregar cualquier paquete.
6. Actualice a la última versión de PHP
Al igual que cualquier otro fragmento de código o programa de software, siempre es mejor actualizar su versión de PHP a la versión más reciente.
La razón principal para usar una versión actualizada de PHP es la seguridad. Durante dos años, cada versión de PHP recibe parches de seguridad y correcciones de errores. Su sistema podría verse comprometido si continúa utilizando versiones anteriores que ya no reciben mantenimiento.
Muchos desarrolladores también pueden no ser conscientes de que cuanto más antigua se vuelve una versión de PHP, más lento se vuelve su rendimiento. Para aumentar la eficiencia, la versión actual de PHP tiene mejoras de rendimiento sobresalientes, como una ejecución más rápida de solicitudes, enumeraciones, fibras y caché de herencia.
Aquí en Kinsta, utilizamos la última versión principal de PHP (PHP 8.1) para todos los entornos, de modo que los usuarios puedan beneficiarse de las amplias capacidades de la plataforma y optimizar sus aplicaciones para obtener la máxima velocidad y eficiencia.
7. Usar colas
La descarga de tareas lentas a un trabajo en cola es una técnica simple para maximizar rápidamente la velocidad de su aplicación Laravel.
A veces, no necesita la información en la interfaz de usuario de inmediato. En este caso, tales tareas pueden posponerse y ejecutarse más tarde en segundo plano mediante un proceso separado (p. ej., enviar un correo electrónico). Esto puede aumentar significativamente el rendimiento de las solicitudes en línea de su aplicación.
Ejemplo de uso de colas para enviar correos electrónicos (Fuente de la imagen: GeekFlare)
Laravel admite una variedad de controladores de cola como IronMQ, Redis, Amazon SQS y Beanstalkd. Además, incluye un trabajador de cola incorporado que se puede ejecutar con el siguiente comando:
php artisan queue:work
Puede agregar un nuevo trabajo a la cola usando este método:
Queue::push('SendEmail', array('message' => $message));
Utilice el método siguiente a través de Carbon si desea aplazar la ejecución de uno de los trabajos en cola. Por ejemplo, supongamos que desea programar un trabajo que envíe un correo electrónico a un cliente 10 minutos después de que cree una cuenta:
$date = Carbon::now()->addMinutes(10); Queue::later($date, '[email protected]', array('message' => $message));
8. Use la herramienta de implementación para apelar a todos los comandos
De acuerdo, nos damos cuenta de que este no es un consejo de rendimiento puro para Laravel, pero es una técnica maravillosa para ahorrar tiempo para los desarrolladores que es tan importante para mejorar la productividad.
Deployer es una herramienta de implementación basada en PHP que le permite implementar su código en diferentes servidores. Incluye scripts para frameworks populares, como Laravel, Symfony, Zend, Magento, CakePHP y más.
Si no trató con Composer antes para administrar las dependencias de su proyecto, se familiarizará con Deployer rápidamente. Utilice esta herramienta para automatizar todas las operaciones de implementación de su máquina, como iniciar el servidor, clonar a un servidor remoto y monitorear un host remoto.
Deployer tiene configuraciones para ejecutar migraciones, semillas y funciones de optimización en aplicaciones Laravel con un solo comando:
php deployer.phar deploy production
9. Usa Lumen para Proyectos Pequeños
Hay ocasiones en las que desarrollar una aplicación pequeña (por ejemplo, aplicaciones móviles o angulares) no exige el uso de un marco de trabajo completo como Laravel. En este escenario, considere usar Lumen en su lugar.
Lumen es un microframework desarrollado por el mismo creador de Laravel. Como una versión más ligera de Laravel, Lumen tiene que ver con la velocidad y el rendimiento de los microservicios. Requiere una configuración mínima y parámetros de enrutamiento alternativos al crear aplicaciones web, lo que permite un proceso de desarrollo más rápido.
Por ejemplo, Lumen puede manejar 100 solicitudes por segundo. También puede integrar herramientas o paquetes de terceros para obtener nuevas funciones. Además, Lumen es compatible con todas las plataformas y le permite actualizar a Laravel.
10. Aproveche el compilador JIT
PHP es un lenguaje del lado del servidor que requiere intérpretes para traducir el código a un código de bytes, que la computadora puede entender.
Este proceso lleva mucho tiempo y consume muchos recursos. Es por eso que los programadores optan por motores de secuencias de comandos como el motor Zend para ejecutar subrutinas C que deben repetirse cada vez que se ejecuta una aplicación, lo que ralentiza su aplicación.
En aras de la eficiencia, los desarrolladores usan el compilador justo a tiempo (JIT) para repetir ese procedimiento solo una vez. HHVM, que fue inventado y es ampliamente utilizado por Facebook, es el compilador JIT preferido para Laravel. Etsy, Wikipedia y docenas de otros sitios también lo usan.
11. Haz uso de la carga ansiosa
Para interactuar con las bases de datos de manera agradable, Laravel proporciona un fantástico mapeador relacional de objetos (ORM) llamado Eloquent. Le permite relacionar las tablas y manejar todas las funciones CRUD en PHP en un formato simple.
Cuando recupera modelos de una base de datos y luego realiza cualquier tipo de procesamiento en sus relaciones, los datos de la relación se "cargan de forma diferida". Esto significa que los datos no se cargan hasta que accede a la relación.
Terminará ejecutando consultas N+1 para encontrar su respuesta con carga diferida, como se ilustra en el siguiente ejemplo:
$books = AppBook::all(); foreach ($books as $book) { echo $book->author->name; }
Para optimizar el rendimiento de Laravel y resolver el problema de la consulta N+1, Laravel puede "cargar con entusiasmo" los datos como se muestra a continuación:
$books = AppBook::with('author')->get(); foreach ($books as $book) { echo $book->author->name; }
12. Comprimir imágenes
Las imágenes juegan un papel importante en el diseño de un sitio web. Son esenciales para mejorar la experiencia del usuario (UX) y aumentar las clasificaciones de búsqueda.
El tiempo promedio de carga de un sitio web es de dos segundos. Las imágenes pesadas desaceleran la velocidad de carga de un sitio. Si tiene un sitio web lento, existe una gran posibilidad de que termine perdiendo muchos visitantes.
La compresión de imágenes minimiza el tamaño de su imagen original sin sacrificar su calidad, lo que ayuda a optimizar la velocidad del sitio. Por esta razón, Laravel ofrece buenas opciones para comprimir fotos como TinyPNG, reSmush.it o ImageMin.
13. Usa un CDN
El uso de una red de entrega de contenido (CDN) puede realmente optimizar el rendimiento de Laravel. Al cargar contenido estático desde un servidor CDN en lugar de directamente desde la máquina en la que se alojan sus archivos, los datos llegan a su audiencia más rápidamente.
En otras palabras, almacena en caché la versión más reciente de su sitio en una red global de servidores en la nube. Por lo tanto, incluso si sus visitantes están geográficamente distantes de su ubicación, aún podrán acceder a su sitio web rápidamente.
Kinsta CDN funciona con Cloudflare y se proporciona de forma gratuita. Permite que los archivos en caché de su sitio web se entreguen desde su dominio principal en lugar de un dominio CDN secundario, lo que aumenta su clasificación de SEO.
Kinsta CDN también ayuda a eliminar componentes no deseados de sus archivos JavaScript (JS) y CSS. Esto reduce en gran medida la cantidad de tiempo que tardan en cargarse las páginas de su sitio y reduce el consumo de ancho de banda.
14. Minimiza el código JS y CSS
Da un empujón para aumentar el rendimiento de Laravel minimizando tus archivos JavaScript y CSS antes de continuar con el proceso de agrupación de activos.
Este paso de minificación elimina cualquier código innecesario de su aplicación, como espacios en blanco, comentarios y cambio de nombre de variables utilizando nombres abreviados. Si es necesario, puede cambiar el tamaño de sus imágenes para crear miniaturas.
Como resultado, mejorará su experiencia de usuario y al mismo tiempo disminuirá las llamadas HTTP.
15. Paquete de activos de empleo
Hay varias herramientas disponibles para comprimir y agrupar archivos como Javascript y CSS en uno solo como Laravel Mix y Laravel Packer.
Todas las aplicaciones de Laravel incluyen Laravel Mix por defecto. Es una API fácil de usar que se usa para crear compilaciones de paquetes web para sus aplicaciones PHP, utilizando una variedad de preprocesadores comunes de JavaScript y CSS.
Suponiendo que necesita una cierta colección de formatos de estilo para su archivo de aplicación, puede ingresar algo como esto:
mix.styles([ 'public/css/vendor/normalize.css', 'public/css/styles.css' ], 'public/css/all.css');
Ahora, Laravel Mix generará un archivo all.css
a partir de los archivos normalize.css
y style.css
automáticamente. Por lo tanto, en lugar de obtener cada hoja de estilo por separado, puede combinarlas en un único archivo all.css.
Laravel Packer es una herramienta de línea de comandos que se puede instalar a través de Composer. Le permite reducir y agrupar su código JS y CSS. Sin embargo, es más difícil de usar que Laravel Mix.
Aunque este consejo es excelente para aumentar el rendimiento de Laravel, fusionar muchos archivos lo hará enorme y eventualmente tendrá el efecto contrario. Para resolver este problema, use Laravel Mix para reducir sus archivos ejecutando este comando:
npm run prod
16. Limite las bibliotecas incluidas
Laravel te da la libertad de agregar tantas bibliotecas como quieras. Si bien esta es una característica increíble, agregar una gran cantidad de bibliotecas ejerce mucha presión sobre el rendimiento de su aplicación. También puede afectar toda la experiencia del usuario.
Por lo tanto, es vital escanear todos los datos de las bibliotecas actualmente en uso dentro del código. Puede encontrar estas bibliotecas en el config/app.php file
. Mientras examina las bibliotecas, elimine las que sabe que ya no le son útiles.
También es una buena idea revisar composer.json
en busca de dependencias innecesarias.
17. Considere usar New Relic
New Relic es una herramienta de gestión del rendimiento de aplicaciones (APM) integrada por los desarrolladores en sus aplicaciones Laravel. Se utiliza para analizar y monitorear las estadísticas que reflejan su desempeño para optimizar la eficiencia y evitar interrupciones en tiempo real.
New Relic puede ayudarlo a evaluar su puntaje de Apdex y medir cómo su aplicación se compara con los competidores en el mercado. También te permite crear políticas de alertas según tus criterios.
Si no desea suscribirse a un servicio de terceros, puede utilizar la herramienta APM de Kinsta. Puede ayudarlo a encontrar cuellos de botella en el rendimiento de PHP en su sitio WP sin cargo adicional.
Resumen
Laravel es un marco PHP de rápido crecimiento y hay muchos tutoriales disponibles para que todo tipo de usuarios aprendan Laravel, independientemente de su nivel de conocimiento.
Cuando se trata de la experiencia del usuario en el mundo digital, el rendimiento es un factor crítico para establecer una sólida presencia en línea. No sorprende que las organizaciones dediquen más tiempo y recursos a proporcionar una UX de alta calidad.
Si es un desarrollador de Laravel, puede estar seguro de que al usar los métodos descritos anteriormente, notará una mejora significativa en el rendimiento y podrá mantener una aplicación que funcione sin problemas.
¿Qué otros métodos has usado para acelerar tus aplicaciones de Laravel? Háganos saber en la sección de comentarios.