
Este es el artículo 4 de 4 de la serie “Optimización de Laravel”
Optimización de Laravel Parte 1: elementos básicos
Optimización de Laravel Parte 2: Mejore el rendimiento de la consulta con la indexación de bases de datos
Optimización de Laravel Parte 3: Mejorar el rendimiento del almacenamiento en caché de objetos
Optimización de Laravel Parte 4: Consignaciones en colas, front-end y Opcache
En mi último artículo, observamos cuál es el almacenamiento de objetos y cómo y cuándo usarlo para mejorar el rendimiento de una aplicación de Laravel. En este artículo, analizaremos algunas tácticas más pequeñas, pero aún muy útiles, para mejorar el rendimiento de una aplicación Laravel, que incluye:
Uso de colas para administrar tareas de consumo de tiempo.
Mejorar el rendimiento de la carga de los activos frontales (compresión de activos, extracción de proveedores, eliminación de caché).
Usando una versión PHP moderna con OpCache activado.
Use las colas para elevar una forma sencilla de mejorar instantáneamente el rendimiento de una aplicación de Laravel es descargar las tareas que requieren mucho tiempo en un trabajo de cola. La idea aquí es que, siempre que el usuario no requiera rápidamente la información en la interfaz de usuario, se puede posponer un embarazo y puede ejecutarse en segundo plano mediante un proceso separado posterior (por ejemplo, enviar un correo electrónico). Esto puede mejorar drásticamente la velocidad de las solicitudes web en su aplicación.
Laravel viene con soporte para una serie de controladores de cola en la caja (por ejemplo, la base de datos, Beanstalkd, Amazon SQS, Redis) y también viene con un trabajador de cola construido utilizando el siguiente comando artesano: Php Artisan Queue: Work I Will Will I Will Will No explique cómo configurar una cola en Laravel como parte de este artículo, porque los documentos de Laravel hacen un gran trabajo a este respecto. Es suficiente decir que crear una clase de trabajo es simple, y agregar el trabajo a una cola en Laravel es tan simple como la llamada en el trabajo: SendamailJob :: Dispatch ($ To, $ Body); Si puede usar las colas ampliamente en su aplicación, puede valer la pena considerar una solución un poco más robusta para su trabajador de cola, como Laravel Horizon (lo usamos para SPINUPWP). Horizon solo acepta el controlador de cola Redis, pero le brinda un tablero que le permite monitorear fácilmente los valores clave de su cola, como flujo de trabajo, tiempo de ejecución y fallas en el trabajo. También es muy fácil de configurar y ofrece funciones como tareas de “equilibrio” en múltiples colas, etiquetado y notificaciones.
Haga que los activos frontales carguen el código de back-end PHP no es el único lugar donde debemos considerar cómo el rendimiento puede afectar nuestra aplicación Laravel. De hecho, la mayoría de las veces, el rendimiento de la carga de los activos en el front-end es lo que puede hacer que la diferencia entre su aplicación se sienta lenta o se sienta rápido. Afortunadamente, Laravel tiene una herramienta incorporada para facilitar el trabajo con activos frontales llamados Laravel Mix. Mix tiene soporte para todo tipo de operaciones, como CSS pre/postprocesamiento, generación de mapas de origen, extracción de proveedores, copias de archivos/carpetas, recarga de navegadores, etc. Incluso tiene una configuración de poca web preconfigurada para realizar un funcionamiento moderno. Framas JavaScript rápidas y fáciles. Por ejemplo, el archivo de configuración de mezcla predeterminado tiene las siguientes líneas: mix.js (‘recursos/js/app.js’, ‘public/js’) .sass (‘recursos/sass/app.scs ‘,’ público/css ‘); Luego la ejecución de una de las escrituras del paquete. Afortunadamente, la compresión de los activos es tan simple como la ejecución del script de “producción” predefinido: la compresión de producción de ejecución de NPM de los activos los hará cargar mucho más rápido que antes, debido al pequeño tamaño del archivo.
La extracción del vendedor mixto acepta la extracción de proveedores, lo que le permite extraer bibliotecas comunes de “proveedores” en un script de paquete separado, para que puedan almacenarse en caché por más tiempo. Esto significa que el navegador no tendrá que descargar todo el código del proveedor sin cambios cada vez que se actualice su código de aplicación, lo que puede hacer que la página sea mucho más rápida. El uso de la extracción del proveedor es tan simple como el uso de la función de configuración de extracto (): mix.js (‘recursos/js/app.js’, ‘public/js’) .tract ([vue ‘,’ lodash ‘ ]); En lugar de generar un solo archivo grande, ahora generará tres archivos separados:
Public/js/manifest.js – El tiempo de ejecución del manifiesto Webpack

Public/JS/Vendor.js – sus bibliotecas de proveedores
Public/js/app.js – su código de aplicación
Cache que revela otra característica útil de la mezcla de laravel es la ruptura de caché. La idea aquí es que sofoca sus materiales con una marca temporal o un símbolo único para obligar a los navegadores a cargar nuevos materiales en lugar de transmitir niños obsoletos (caché). Esto es especialmente útil cuando transmite activos estáticos con un término de vencimiento en el futuro lejano o cuando los descarga en un CDN. La configuración de la quiebra de caché es tan simple como el uso de la función de versión () en la configuración de mezcla. Como los archivos con versiones no se necesitan normalmente en el desarrollo, es común hacerlo solo para la producción:
mix.js (‘recursos/js/app.js’, ‘public/js’); If (mix.inproduction ()) {mix.version (); } Entonces, en la visualización de Laravel, puede cargar el activo usando la función de ayuda mix (): En la producción, el resultado Se mostrará sobre: Use PHP moderno con Opcache La última optimización que cubriremos en este artículo no está directamente vinculada a Laravel, sino que lo hace, sino que lo hace, sino Una gran diferencia para el rendimiento de una aplicación Laravel. Y es simplemente: use una versión PHP moderna con OpCache activado. De solicitudes/seg). Vale la pena señalar aquí que Laravel requirió PHP 7.0+ de V5.5 y PHP 7.1+ de V5.6. Por lo tanto, no hay razón para no usar una versión PHP moderna con Laravel. Al hacer esto más allá, puede activar OpCache en el PHP, lo que mejora el rendimiento almacenando el script de byte byte precompilado en la memoria compartida, eliminando la necesidad de que PHP cargue y analice los scripts en cada solicitud (piense en el nivel bajo como un nivel bajo cache).
Comenzando con PHP 7, OpCache se activa de forma predeterminada (pero no optimizada para la producción) si el módulo está instalado. Si el módulo no está instalado, deberá instalarlo usted mismo (el proceso de instalación del módulo será diferente según el host). Para asegurarse de que esté activado, deberá verificar el php.ini para ver lo siguiente: opcache.enable = 1 Configuración de OpCache que debe personalizar dependerá del entorno (tamaño del servidor, cantidad de tráfico, etc.), pero PHP recomienda La siguiente configuración básica: opcache.memory_consuming = 128 opcache.interned_strings_buffer = 8 opcache.max_accelerated_files = 4000 opcache.revalidate_freq = 60 opcache.fast_shutdown = 1 opcache.enable_cli = 1 No voy a explicar aquí lo que hace cada lugar, php documentos. Para darle una idea del impacto del rendimiento de activación de OpCache, en una gota de 1 GB DigitalOcean puede obtener un aumento de ~ 300% dependiendo de su configuración (desde ~ 10 solicitudes/seg a ~ 40 solicitudes/seg). Vale la pena señalar que, con el OpCache activado y ajustado para la producción, deberá recargar el PHP después de cada implementación para que los cambios tengan un efecto.
Es tu turno, así que aquí está.Tres optimizaciones relativamente simples que puede hacer a su Laravel, lo que puede aumentar significativamente el rendimiento.En combinación con artículos anteriores de esta serie, ¡ahora debería tener una aplicación extraordinariamente rápida de Laravel!Y esto nos lleva al final de esta breve serie sobre la optimización de Laravel.¿Alguna vez ha utilizado alguna de las tácticas en este artículo para optimizar a Laravel antes?Si es así, ¿cómo lo hiciste?Si no, ¿vas a probarlos ahora?¿Tienes otros consejos?Cuéntanos en los comentarios. Este es el artículo 4 de 4 de la serie “Optimización de Laravel”. Optimización de Laravel Parte 1: elementos básicos
Optimización de Laravel Parte 2: Mejore el rendimiento de la consulta con la indexación de bases de datos
Optimización de Laravel Parte 3: Mejorar el rendimiento del almacenamiento en caché de objetos
Optimización de Laravel Parte 4: Consignaciones en colas, front-end y Opcache
Optimización de Laravel Parte 4: Consignaciones en colas, front-end y Opcache
Tags frente Optimización de Laravel Parte 4: Consideraciones de Cozii
homefinance blog