Maison > cadre php > Swoole > Pourquoi swoole est-il plus rapide que fpm ?

Pourquoi swoole est-il plus rapide que fpm ?

(*-*)浩
Libérer: 2019-12-13 09:13:29
original
3094 Les gens l'ont consulté

Pourquoi swoole est-il plus rapide que fpm ?

PHP-FPM

Les premières versions de PHP n'avaient pas de serveur WEB intégré, mais fournissaient SAPI (API serveur) à des tiers les fêtes font l'amarrage. Le désormais très populaire php-fpm gère la communication entre PHP et les serveurs WEB tiers via le protocole FastCGI. (Apprentissage recommandé : tutoriel vidéo swoole )

Par exemple, la combinaison de Nginx + php-fpm, fpm exécuté de cette manière est en mode Maître/Travailleur, démarrant un processus Maître pour surveiller les requêtes à partir de Nginx, puis forkez plusieurs processus Worker pour gérer la demande. Chaque processus Worker ne peut traiter qu'une seule requête. Le cycle de vie d'un seul processus est à peu près le suivant :

Module d'initialisation.

Demande d'initialisation. La requête ici signifie demander à PHP d'exécuter du code, pas une requête HTTP.

Exécutez le script PHP.

Fin de la demande.

Fermez le module.

Swoole

Swoole utilise également le mode Master/Worker. La différence est que le processus Master a plusieurs threads Reactor et que le Master n'est qu'un générateur d'événements, responsable. pour écouter le handle du Socket dans les événements.

Worker s'exécute de manière multi-processus, reçoit des requêtes des threads Reactor et exécute des fonctions de rappel (écrites en PHP). Le processus de démarrage du processus Master est à peu près le suivant :

Module d'initialisation.

Demande d'initialisation. Étant donné que swoole doit être exécuté via le cli, les variables globales de PHP, telles que $_SERVER, $_POST, $_GET, etc., ne seront pas initialisées lors de l'initialisation de la requête.

Exécutez le script PHP. Y compris l'analyse lexicale et syntaxique, l'initialisation des variables, des fonctions, des classes, etc., le Maître entre dans l'état d'écoute et ne terminera pas le processus.

Le principe de l'accélération Swoole

Le Reactor (la méthode de réutilisation des IO d'epoll) est chargé de surveiller les changements d'événements du handle de Socket pour résoudre les problèmes de forte concurrence .

Gagnez du temps lors de l'initialisation du code PHP grâce à la mémoire résidente. Lors de l'utilisation de frameworks volumineux, l'effet d'accélération de l'utilisation de swoole est très évident.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal