webman performance
Flusso di elaborazione delle richieste nei framework tradizionali
- nginx/apache riceve la richiesta
- nginx/apache passa la richiesta a php-fpm
- php-fpm inizializza l'ambiente, ad esempio crea la lista delle variabili
- php-fpm chiama RINIT per le varie estensioni/moduli
- php-fpm legge i file php dal disco (evitabile usando opcache)
- php-fpm analizza lessicalmente, analizza sintatticamente e compila in opcode (evitabile usando opcache)
- php-fpm esegue opcode, inclusi 8.9.10.11
- Il framework si inizializza, ad esempio istanziando varie classi, inclusi contenitore, controller, routing, middleware, ecc.
- Il framework si connette al database e verifica i permessi, si connette a redis
- Il framework esegue la logica aziendale
- Il framework chiude la connessione al database e a redis
- php-fpm rilascia le risorse, distrugge tutte le definizioni delle classi, le istanze e distrugge la tabella dei simboli, ecc.
- php-fpm chiama in sequenza i metodi RSHUTDOWN delle varie estensioni/moduli
- php-fpm inoltra i risultati a nginx/apache
- nginx/apache restituisce i risultati al client
Flusso di elaborazione delle richieste in webman
- Il framework riceve la richiesta
- Il framework esegue la logica aziendale (opcode bytecode)
- Il framework restituisce i risultati al client
Esatto, senza nginx come reverse proxy, il framework ha solo questi 3 passaggi. Si può dire che questo è già il massimo per un framework PHP, il che rende le prestazioni di webman molte volte superiori a quelle dei framework tradizionali.
Ulteriori riferimenti Stress Test