Производительность webman
Процесс обработки запросов традиционного фреймворка
- Nginx/Apache получает запрос
- Nginx/Apache передает запрос в php-fpm
- PHP-FPM инициализирует среду, такую как создание списка переменных
- PHP-FPM вызывает RINIT различных расширений/модулей
- PHP-FPM считывает PHP-файл с диска (использование opcache может избежать этого)
- PHP-FPM проводит лексический анализ, синтаксический анализ, компиляцию в opcode (использование opcache может избежать этого)
- PHP-FPM выполняет opcode, включая 8, 9, 10, 11
- Инициализация фреймворка, такая как создание экземпляров различных классов, включая контейнер, контроллеры, маршруты, промежуточное ПО и т. д.
- Фреймворк подключается к базе данных, выполняет проверку прав доступа, подключается к Redis
- Фреймворк выполняет бизнес-логику
- Фреймворк закрывает подключения к базе данных и к Redis
- PHP-FPM освобождает ресурсы, уничтожает все определения классов, экземпляры, уничтожает таблицу символов и т. д.
- PHP-FPM последовательно вызывает методы RSHUTDOWN различных расширений/модулей
- PHP-FPM перенаправляет результат Nginx/Apache
- Nginx/Apache возвращает результат клиенту
Процесс обработки запросов webman
- Фреймворк получает запрос
- Фреймфорк выполняет бизнес-логику
- Фреймворк возвращает результат клиенту
Да, без обратного прокси Nginx, у фреймворка всего лишь 3 шага. Можно сказать, что это уже предельно для фреймворка на PHP, что делает производительность webman в несколько раз и даже десятки раз выше, чем у традиционных фреймворков.
Дополнительная информация доступна в тестах производительности