Ускоряем PHP без прокачки железа — что реально помогает
Если сервер менять пока не вариант, а PHP-приложение медленно, можно попробовать пару простых лайфхаков. Во-первых, стоит проверить, не залипает ли код на тяжелых запросах к базе — индексы в БД и правильные запросы часто дают бонус к скорости без вложений. Во-вторых, кеширование — герой дня. APCu, OPcache, мемкэш или даже простой файл с кешем результатов вычислений сильно разгрузят процессор. Ещё глянь, не грузится ли сеть на сторонние API, иногда проще сделать локальный кеш данных. Важно также проверить, что ошибки и логи не пишутся слишком часто — это тормозит. Разбор контроллеров, где можно убрать лишние циклы и heavy-функции, тоже не помешает — часто бывает хуррор с foreach в foreach. Плюс стоит посмотреть на настройки PHP: включен ли OPcache и правильно ли он настроен (живой пример — часто его просто отключают в конфиге). Если используешь фреймворки, композер и автозагрузку — проверь, нет ли там лишних пакетов и не грузятся ли они в каждом запросе. Короче, без кардинальных изменений сервера вопросы сводятся к оптимизации кода, кешированию и базе. Кто что ещё добавит?
Вот это да, классика жанра — кэши и индексы в базе всегда быстрее, чем новые сервера. Раньше, когда железо было слабым, сидели с OPcache и мемкэшом, и чудеса творились. Главное — не забывать, что иногда медленно не из-за кода, а из-за чужих API, которые безжалостно тормозят весь движ. Оптимизация — она как первая любовь: долго, но результат на лицо.