Performance de webman
Processus de traitement des requêtes des frameworks traditionnels
- nginx/apache reçoit la demande
- nginx/apache transmet la demande à php-fpm
- php-fpm initialise l'environnement, comme la création de la liste des variables
- php-fpm appelle RINIT des différentes extensions/modules
- php-fpm lit le fichier php du disque (l'utilisation d'opcache peut être évitée)
- php-fpm analyse lexicale, analyse syntaxique, compilation en opcodes (l'utilisation d'opcache peut être évitée)
- php-fpm exécute les opcodes incluant 8, 9, 10, 11
- Initialisation du framework, comme l'instanciation de plusieurs classes, y compris le conteneur, le contrôleur, le routage, les middlewares, etc.
- Le framework se connecte à la base de données et effectue une vérification des autorisations, se connecte à redis
- Le framework exécute la logique métier
- Le framework ferme les connexions à la base de données et redis
- php-fpm libère les ressources, détruit toutes les définitions de classe, les instances, détruit le tableau des symboles, etc.
- php-fpm appelle séquentiellement les méthodes RSHUTDOWN des différentes extensions/modules
- php-fpm transmet les résultats à nginx/apache
- nginx/apache renvoie les résultats au client
Processus de traitement de la demande de webman
- Le framework reçoit la demande
- Le framework exécute la logique métier
- Le framework renvoie les résultats au client
Oui, sans la possibilité de reverse proxy avec nginx, le framework se déroule en seulement ces 3 étapes. On peut dire que c'est déjà l'apogée des frameworks PHP, ce qui fait que les performances de webman sont plusieurs fois voire plusieurs dizaines de fois supérieures à celles des frameworks traditionnels.
Pour plus d'informations, voir les tests de stress