Prestazioni di webman
Flusso di gestione delle richieste dei framework tradizionali
- Nginx/Apache riceve la richiesta
- Nginx/Apache inoltra la richiesta a php-fpm
- php-fpm inizializza l'ambiente, come la creazione di un elenco di variabili
- php-fpm chiama l'RINIT delle varie estensioni/moduli
- php-fpm legge il file PHP dal disco (usando opcache può essere evitato)
- php-fpm analizza lessicalmente, sintatticamente e compila in opcode il file PHP (usando opcache può essere evitato)
- php-fpm esegue l'opcode, inclusi 8,9,10,11
- Il framework si inizializza, ad esempio istanziando varie classi come contenitori, controller, routing, middleware, ecc.
- Il framework si connette al database e verifica i permessi, connessione a Redis
- Il framework esegue la logica di business
- Il framework chiude la connessione al database e a Redis
- php-fpm rilascia le risorse, distrugge tutte le definizioni e le istanze di classe, distrugge le tabelle dei simboli, ecc.
- php-fpm chiama in sequenza i metodi RSHUTDOWN delle varie estensioni/moduli
- php-fpm inoltra il risultato a Nginx/Apache
- Nginx/Apache restituisce il risultato al client
Flusso di gestione delle richieste di webman
- Il framework riceve la richiesta
- Il framework esegue la logica di business
- Il framework restituisce il risultato al client
Sì, senza un proxy inverso Nginx, il framework ha solo questi 3 passaggi. Si potrebbe dire che questo è il massimo di un framework PHP, rendendo le prestazioni di webman diverse volte superiori, anche decine di volte, rispetto ai framework tradizionali.
Per ulteriori informazioni, consulta test di stress