Costumo usar o Micro & Router, então decidi fazer benchmark. Este benchmark agradeceu ao (@kenjis) php-framework-benchmark. Eu mudei AB para Awk, adicionado à tabela "Tipo de estrutura" e outra coisa ...
! Referência com ajuda wrk https://github.com/wg/wrk
Este projeto tenta medir a sobrecarga mínima (custo mínimo de bootstrap) das estruturas PHP no mundo real.
Então, acho que as aplicações mínimas para a referência não devem incluir:
Componentes como o modelo de modelo ou as bibliotecas de banco de dados ORM/estão fora de escopo neste projeto.
Este é o ramo master .
--optimize-autoloader .Algumas pessoas podem pensar que o uso de configuração padrão não é justo. Mas acho que a configuração padrão de uma estrutura é uma afirmação do que é. A configuração padrão é um bom ponto de partida para conhecer uma estrutura. E não posso otimizar todas as estruturas. Algumas estruturas são otimizadas, outras não, não são justas. Portanto, não removo nenhum componente/configurações.
Mas se você estiver interessado em benchmarking com otimização (removendo componentes/configurações que não são usadas), consulte Otimize Branch.
Se você encontrar algo errado com meu código, sinta -se à vontade para enviar solicitações de puxar. Mas observe a otimização apenas para "Hello World!" não é aceitável. Construindo mais rápido "Hello World!" O aplicativo não é o objetivo neste projeto.
Estes são meus benchmarks, não seus. Encorajo você a executar seus ambientes (equivalentes de produção). (2019/01/27)
Mostrar gráficos 



CENTOS 7.6 Meu servidor
| estrutura | pedidos por segundo | parente | Memória de pico | parente | arquivos | tipo |
|---|---|---|---|---|---|---|
| Sem estrutura | 11.742,54 | 19.7 | 0,41 | 1.0 | 1 | Sem estrutura |
| Altorouter | 3.619,92 | 6.1 | 0,50 | 1.2 | 6 | roteador |
| PHP-ROUTER | 3.358,57 | 5.6 | 0,52 | 1.3 | 8 | roteador |
| Fastoute | 2.463,59 | 4.1 | 0,55 | 1.3 | 15 | roteador |
| voo | 1.660,40 | 2.8 | 0,68 | 1.6 | 15 | micro |
| Tipsy | 1.617.18 | 2.7 | 0,66 | 1.6 | 16 | micro |
| limonada | 1.439.16 | 2.4 | 1.02 | 2.5 | 6 | micro |
| Siler-1.3 | 1.397.18 | 2.3 | 0,88 | 2.1 | 22 | micro |
| klein.php | 1.271,65 | 2.1 | 0,78 | 1.9 | 20 | roteador |
| BARRAÇÃO DE BARRO | 1.065,35 | 1.8 | 0,94 | 2.3 | 22 | micro |
| FATFREE | 1.049.13 | 1.8 | 1.50 | 3.6 | 6 | micro |
| Slim-3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | micro |
Macos Mojave 10.14.2 meu desktop
| estrutura | pedidos por segundo | parente | Memória de pico | parente | arquivos | tipo |
|---|---|---|---|---|---|---|
| Sem estrutura | 4.573,15 | 7.2 | 0,37 | 1.0 | 1 | Sem estrutura |
| Altorouter | 2.617,56 | 4.1 | 0,47 | 1.3 | 6 | roteador |
| PHP-ROUTER | 2.417.23 | 3.8 | 0,47 | 1.3 | 8 | roteador |
| Fastoute | 1.947,44 | 3.1 | 0,51 | 1.4 | 15 | roteador |
| voo | 1.545.02 | 2.4 | 0,63 | 1.7 | 15 | micro |
| Tipsy | 1.410.26 | 2.2 | 0,61 | 1.6 | 16 | micro |
| Siler-1.3 | 1.330.79 | 2.1 | 0,77 | 2.1 | 22 | micro |
| klein.php | 1.246.66 | 2.0 | 0,74 | 2.0 | 20 | roteador |
| limonada | 1.193.01 | 1.9 | 1,00 | 2.7 | 6 | micro |
| BARRAÇÃO DE BARRO | 1.108,75 | 1.8 | 0,90 | 2.4 | 22 | micro |
| FATFREE | 1.062,73 | 1.7 | 1.44 | 3.9 | 6 | micro |
| Slim-3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | micro |
Nota (1): Esses benchmarks são limitados pelo wrk https://github.com/wg/wrk Performance.
Instale o código-fonte como http: // localhost/php-micro-router-framework-benchmark/:
$ git clone https://github.com/dejurin/php-micro-router-framework-benchmark.git
$ cd php-micro-router-framework-benchmark
$ bash setup.sh
Execute benchmarks:
$ bash benchmark.sh
Consulte http: // localhost/php-micro-router-framework-benchmark/.
Se você deseja comparar algumas estruturas:
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
Eu adicionei abaixo em /etc/sysctl.conf
# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
e execute sudo sysctl -p .
Se você deseja ver a configuração atual, execute sudo sysctl -a .