我經常使用微路由器,所以我決定進行基準測試。該基準要感謝(@kenjis)PHP-Framework基準。我將ab更改為尷尬,添加到表“框架類型”和其他內容中...
呢帶幫助wrk https://github.com/wg/wrk的基準測試
該項目試圖測量現實世界中PHP框架的最低開銷(最低引導成本)。
因此,我認為基準的最低申請不應包括:
模板引擎或ORM/數據庫庫之類的組件在此項目中不超出範圍。
這是master分支。
--optimize-autoloader 。有些人可能認為使用默認配置是不公平的。但是我認為框架的默認配置是對其的主張。默認配置是了解框架的好起點。而且我無法優化所有框架。有些框架是優化的,有些不是,這是不公平的。因此,我沒有刪除任何組件/配置。
但是,如果您有興趣通過優化進行基準測試(刪除未使用的組件/配置),請參見“優化分支”。
如果您發現我的代碼有問題,請隨時發送拉動請求。但是請注意,僅對“ Hello World!”進行優化。是不可接受的。構建最快的“ Hello World!”應用不是該項目的目標。
這些是我的基準,而不是您的基準。我鼓勵您在(生產等效)環境下運行。 (2019/01/27)
顯示圖表



CentOS 7.6我的服務器
| 框架 | 每秒請求 | 相對的 | 峰值內存 | 相對的 | 文件 | 類型 |
|---|---|---|---|---|---|---|
| 無框架 | 11,742.54 | 19.7 | 0.41 | 1.0 | 1 | 無框架 |
| Altorouter | 3,619.92 | 6.1 | 0.50 | 1.2 | 6 | 路由器 |
| php-router | 3,358.57 | 5.6 | 0.52 | 1.3 | 8 | 路由器 |
| Fastroute | 2,463.59 | 4.1 | 0.55 | 1.3 | 15 | 路由器 |
| 航班 | 1,660.40 | 2.8 | 0.68 | 1.6 | 15 | 微 |
| tip | 1,617.18 | 2.7 | 0.66 | 1.6 | 16 | 微 |
| 檸檬酸鹽 | 1,439.16 | 2.4 | 1.02 | 2.5 | 6 | 微 |
| Siler-1.3 | 1,397.18 | 2.3 | 0.88 | 2.1 | 22 | 微 |
| klein.php | 1,271.65 | 2.1 | 0.78 | 1.9 | 20 | 路由器 |
| 熊市 | 1,065.35 | 1.8 | 0.94 | 2.3 | 22 | 微 |
| 不胖 | 1,049.13 | 1.8 | 1.50 | 3.6 | 6 | 微 |
| Slim-3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | 微 |
Macos Mojave 10.14.2我的桌面
| 框架 | 每秒請求 | 相對的 | 峰值內存 | 相對的 | 文件 | 類型 |
|---|---|---|---|---|---|---|
| 無框架 | 4,573.15 | 7.2 | 0.37 | 1.0 | 1 | 無框架 |
| Altorouter | 2,617.56 | 4.1 | 0.47 | 1.3 | 6 | 路由器 |
| php-router | 2,417.23 | 3.8 | 0.47 | 1.3 | 8 | 路由器 |
| Fastroute | 1,947.44 | 3.1 | 0.51 | 1.4 | 15 | 路由器 |
| 航班 | 1,545.02 | 2.4 | 0.63 | 1.7 | 15 | 微 |
| tip | 1,410.26 | 2.2 | 0.61 | 1.6 | 16 | 微 |
| Siler-1.3 | 1,330.79 | 2.1 | 0.77 | 2.1 | 22 | 微 |
| klein.php | 1,246.66 | 2.0 | 0.74 | 2.0 | 20 | 路由器 |
| 檸檬酸鹽 | 1,193.01 | 1.9 | 1.00 | 2.7 | 6 | 微 |
| 熊市 | 1,108.75 | 1.8 | 0.90 | 2.4 | 22 | 微 |
| 不胖 | 1,062.73 | 1.7 | 1.44 | 3.9 | 6 | 微 |
| Slim-3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | 微 |
注意(1):此基準測試受wrk https://github.com/wg/wrk performance的限制。
將源代碼安裝為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
運行基準:
$ bash benchmark.sh
請參閱http:// localhost/php-micro-router-framework基準/。
如果您想基準一些框架:
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
我在/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
並運行sudo sysctl -p 。
如果要查看當前配置,請運行sudo sysctl -a 。