webman performance

Flusso di elaborazione delle richieste nei framework tradizionali

  1. nginx/apache riceve la richiesta
  2. nginx/apache passa la richiesta a php-fpm
  3. php-fpm inizializza l'ambiente, ad esempio crea la lista delle variabili
  4. php-fpm chiama RINIT per le varie estensioni/moduli
  5. php-fpm legge i file php dal disco (evitabile usando opcache)
  6. php-fpm analizza lessicalmente, analizza sintatticamente e compila in opcode (evitabile usando opcache)
  7. php-fpm esegue opcode, inclusi 8.9.10.11
  8. Il framework si inizializza, ad esempio istanziando varie classi, inclusi contenitore, controller, routing, middleware, ecc.
  9. Il framework si connette al database e verifica i permessi, si connette a redis
  10. Il framework esegue la logica aziendale
  11. Il framework chiude la connessione al database e a redis
  12. php-fpm rilascia le risorse, distrugge tutte le definizioni delle classi, le istanze e distrugge la tabella dei simboli, ecc.
  13. php-fpm chiama in sequenza i metodi RSHUTDOWN delle varie estensioni/moduli
  14. php-fpm inoltra i risultati a nginx/apache
  15. nginx/apache restituisce i risultati al client

Flusso di elaborazione delle richieste in webman

  1. Il framework riceve la richiesta
  2. Il framework esegue la logica aziendale (opcode bytecode)
  3. 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