Laravel & PHP Deep — фреймворки и пакеты

7 причин, почему Laravel-проект начинает тормозить даже без роста нагрузки

7 причин, почему Laravel-проект начинает тормозить даже без роста нагрузки

Чаще всего проблема не в самом фреймворке, а в том, как собран код вокруг него. Laravel хорошо терпит хаос до момента, когда каждый запрос начинает тащить лишнее: сервисы, события, отношения, мутаторы и тяжелые коллекции.

Что проверять в первую очередь:
— N+1 на рендерах и в API, особенно там, где eager loading забыли в одном месте;
— тяжелые middleware и глобальные scope, которые срабатывают на каждый запрос;
— запросы в циклах, скрытые в accessors, observers и Resource-классах;
— очереди и кеш: если их нет, часть работы молча уезжает в HTTP-слой.

Отдельно смотрите на контейнер и сервис-провайдеры. Когда в них много логики, старт приложения дорожает еще до того, как контроллер начал работу. Тот же эффект дают слишком жирные модели: чем больше поведения внутри Eloquent, тем сложнее предсказать стоимость обычного read-only запроса.

Хороший тест на здоровье проекта простой: открыть медленный экран, снять SQL-профиль и понять, где код делает лишнюю работу повторно. Если ответ находится только через дебаггер и догадки, архитектура уже просит рефакторинг.

Лучшая привычка для Laravel-проекта — считать не строки кода, а количество лишних действий на один запрос.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.