Ускорение PHP — это средства и подходы используемые для оптимизации работы кода, в том числе внешние решения, позволяющие добавить, например, кэширование и увеличить скорость работы.
Ускорение PHP
Основные способы увеличения производительности (применимо при разработке или оптимизации законченных проектов):
- Минимизация использования регулярных выражений, которые выполняются долго. Вместо regexp можно использовать функции для обработки строк: join, explode и др.
- Отказ от объектно-ориентированного программирования там, где это возможно
- Использование абсолютных путей в коде: include /var/site/css/style.css; вместо относительных include ../style.css; С абсолютными путями код будет выполняться быстрее
- Одинарные кавычки для строк — известно, что переменные в строках распознаются только при использовании двойных кавычек. От этого overhead-а можно избавиться, получив увеличение производительности
- Современные версии PHP. Код, написанный на 7.0+ работает на 20-30% быстрее, чем код на PHP 5.4 и 5.6, ещё больший рост производительности даёт переход на PHP8
- Хранение сессий в Memcached — хранение в файлах не подходит для нагруженных проектов. Чаще всего применяется Memcached. С PHP хранилище может работать за счет расширений memcache и memcached
- Подходящие значения параметров PHP memory_limit, max_execution_time и post_max_size в файле php.ini
- Акселераторы PHP вроде opCache и APCu
- FastCGI или PHP-FPM в качестве менеджера процессов, с FPM и Nginx получается самая высокая производительность
- Постоянное профилирование кода и анализ узких мест с последующей переработкой
Если код проекта стал выполняться медленно резко и раньше работал нормально выяснить причины часто помогает утилита strace. Отслеживая с ее помощью процессы можно узнать, что медленно выполняется какой-то запрос в базе данных или что код ожидает ответа от стороннего ресурса, который стал недоступен.