desempenho do webman
Fluxo de processamento de solicitação de framework tradicional
- nginx/apache recebe a solicitação
- nginx/apache passa a solicitação para php-fpm
- php-fpm inicializa o ambiente, como criar listas de variáveis
- php-fpm chama o RINIT de cada extensão/módulo
- php-fpm lê o arquivo php do disco (isso pode ser evitado usando opcache)
- php-fpm realiza análise léxica, análise sintática, compila em opcode (isso pode ser evitado usando opcache)
- php-fpm executa o opcode, incluindo 8.9.10.11
- O framework inicializa, como instanciar várias classes, incluindo contêiner, controladores, rotas, middleware, etc.
- O framework se conecta ao banco de dados e verifica permissões, conecta ao redis
- O framework executa a lógica de negócios
- O framework fecha as conexões do banco de dados e do redis
- php-fpm libera recursos, destrói todas as definições de classes, instâncias, destrói a tabela de símbolos, etc.
- php-fpm chama sequencialmente o método RSHUTDOWN de cada extensão/módulo
- php-fpm encaminha o resultado para nginx/apache
- nginx/apache retorna o resultado ao cliente
Fluxo de processamento de solicitações do webman
- O framework recebe a solicitação
- O framework executa a lógica de negócios (código byte opcode)
- 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