Оптимизация производительности Laravel
Доброго времени суток. В данной статье мы поговорим о Laravel, об оптимизации web-приложения на Laravel. Да Laravel прост, быстр, но как и любое web-приложение может быть еще больше улучшен (оптимизирована производительность). И увеличить производительность Laravel достаточно просто. Для этого необходимо соблюдать некоторые правила.
И так, Laravel позволяет нам создавать мощный код с минимальными усилиями. Но, как и все web-приложения, приложения Laravel требуют оптимизации производительности. Производительность – это один из ключевых факторов успеха бизнес-приложения. Давайте рассмотрим основные правила оптимизации приложения, использующего Laravel.
Кэширование конфигурации.
Laravel умеет кэшировать конфигурацию приложения. Для этого используется artisan команда:
php artisan config:cache
Но будьте внимательны, внесенные изменения в конфигурацию не будут работать пока вы не сбросите кэш конфигурации:
php artisan config:clear
Кэширование маршрутов.
Laravel позволяет кэшировать и маршруту, что значительно ускоряет работу приложения. Для этого используйте команду artisan:
php artisan route:cache
Но будьте осторожны, при изменение рутов необходимо и очищать кэш:
php artisan route:clear
Удаление неиспользуемых сервисов
Нужно в файле конфигурации отключить неиспользуемые сервисы. Просто закомментируйте их в файле config/app.php
Оптимизация классов
Как и любое web-приложение (более-менее серьезное) имеет несколько включений файлов, используя конструкцию include. Да, это повышает читабельность кода, но замедляет производительность самого приложения. Для того, чтобы убрать включения и создать один файл выполните следующую команду:
php artisan optimize –force
Оптимизация автозагрузки с помощью composer
Для того, чтобы оптимизировать автозагрузку, используйте следующую команду:
composer dumpautoload –o
Удаление и оптимизация библиотек
Laravel очень популярен благодаря и большому количеству библиотек, который повышают функциональность приложения. Но не все библиотеки качественные. Поэтому, если вам библиотека не нужна не используйте ее. Для этого удалите ее из файла config/app.php
Использование компилятора JIT
Перевод php-кода в байт-код достаточно ресурсоемкий процесс. Поэтому рекомендуется в продакшен использовать JIT компилятор. Для приложений Laravel рекомендуемым JIT-компилятором является HHVM от Facebook.
Использование быстрого кэша
Для оптимизации производительности Laravel необходимо использовать кэш для часто используемых и редко изменяемых данных, а также для сеансов. Одним из оптимальных вариантов является использование Memcached.
Использование жадной и ленивой загрузки.
Всем известна проблема N+1 запроса? Нет, тогда вам сюда. Используйте жадную или ленивую загрузку. В статье «Жадная и ленивая загрузка в Laravel. Методы with() и load().»описаны в чем разница и в чем преимущество их.
Заключение.
Мы с вами рассмотрели некоторые способы оптимизации производительности приложения Laravel, которые уже включены в сам фреймворк. Так же можно посоветовать использовать CDN для статического контента, использовать nginx, оптимизировать (cжать) картинки, которые используются на сайте и др.