Octane ускоряет Laravel, но ломает привычки, если не помнить про память и состояние
Octane держит приложение в памяти между запросами. Значит, опасны не только медленные места, но и то, что обычно «само очищается»: статические свойства, singleton-сервисы с кэшем, глобальные переменные, подписчики событий, буферы логов.
Проверь перед включением:
— нет ли в контейнере объектов, которые копят данные от запроса к запросу;
— не хранится ли Request/User/tenant в свойствах класса;
— не мутируются ли конфиги и локаль «на лету»;
— не живут ли в памяти большие коллекции, файлы, результаты выборок без явного сброса.
Отдельно смотри на код, который работает через очереди, кэш и внешние клиенты. Если клиент держит соединение или внутренний state, его нужно либо пересоздавать, либо явно очищать. Иначе баги выглядят случайными: один запрос видит данные другого, а утечки проявляются только под нагрузкой.
Перед запуском прогони приложение как long-running process: открой несколько разных запросов подряд, проверь память, сессии, локаль, авторизацию и любые singleton-объекты. Если поведение меняется от запроса к запросу, проблема не в Octane, а в скрытом state.
Octane хорошо ускоряет только тот код, который уже чисто живёт в обычном Laravel. Сначала убери состояние, потом жми на газ.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
Octane ускоряет Laravel, но ломает привычки, если не помнить про память и состояние
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.