desempenho do webman

Fluxo de processamento de solicitação de framework tradicional

  1. nginx/apache recebe a solicitação
  2. nginx/apache passa a solicitação para php-fpm
  3. php-fpm inicializa o ambiente, como criar listas de variáveis
  4. php-fpm chama o RINIT de cada extensão/módulo
  5. php-fpm lê o arquivo php do disco (isso pode ser evitado usando opcache)
  6. php-fpm realiza análise léxica, análise sintática, compila em opcode (isso pode ser evitado usando opcache)
  7. php-fpm executa o opcode, incluindo 8.9.10.11
  8. O framework inicializa, como instanciar várias classes, incluindo contêiner, controladores, rotas, middleware, etc.
  9. O framework se conecta ao banco de dados e verifica permissões, conecta ao redis
  10. O framework executa a lógica de negócios
  11. O framework fecha as conexões do banco de dados e do redis
  12. php-fpm libera recursos, destrói todas as definições de classes, instâncias, destrói a tabela de símbolos, etc.
  13. php-fpm chama sequencialmente o método RSHUTDOWN de cada extensão/módulo
  14. php-fpm encaminha o resultado para nginx/apache
  15. nginx/apache retorna o resultado ao cliente

Fluxo de processamento de solicitações do webman

  1. O framework recebe a solicitação
  2. O framework executa a lógica de negócios (código byte opcode)
  3. O framework retorna o resultado ao cliente

Isso mesmo, na ausência de um proxy reverso nginx, o framework só tem essas 3 etapas. Pode-se dizer que isso já é o extremo dos frameworks PHP, o que faz com que o desempenho do webman seja várias vezes ou até dezenas de vezes maior que o de frameworks tradicionais.

Mais referências teste de carga