Ich benutze oft Micro & Router, also habe ich mich für den Benchmark entschieden. Dieser Benchmark dank (@kenjis) php-ramework-Benchmark. Ich habe AB in awk geändert, zu Tabelle "Art des Frameworks" hinzugefügt und etwas anderes ...
! Benchmark mit Hilfe wrk https://github.com/wg/wrk
Dieses Projekt versucht, den Mindestaufwand (minimale Bootstrap -Kosten) von PHP -Frameworks in der realen Welt zu messen.
Ich denke also, dass die Mindestanwendungen für Benchmark nicht enthalten sollten:
Komponenten wie Template Engine oder ORM/Datenbankbibliotheken haben in diesem Projekt keinen Umfang.
Dies ist master -Zweig.
--optimize-autoloader .Einige Leute denken vielleicht, dass die Standardkonfiguration nicht fair ist. Aber ich denke, die Standardkonfiguration eines Frameworks ist eine Behauptung dessen, was es ist. Die Standardkonfiguration ist ein guter Ausgangspunkt, um ein Framework zu kennen. Und ich kann nicht alle Frameworks optimieren. Einige Frameworks sind optimiert, andere nicht, es ist nicht fair. Daher entferne ich keine Komponenten/Konfigurationen.
Wenn Sie jedoch an Benchmarking mit Optimierung interessiert sind (Entfernen von Komponenten/Konfigurationen, die nicht verwendet werden), finden Sie den Zweig optimieren.
Wenn Sie mit meinem Code etwas falsch finden, senden Sie bitte Pull -Anfragen. Aber bitte beachten Sie, dass es nur für "Hallo Welt!" Optimieren Sie optimieren, um zu optimieren, dass "Hello World!" ist nicht akzeptabel. Bauen am schnellsten "Hallo Welt!" Anwendung ist nicht das Ziel in diesem Projekt.
Das sind meine Benchmarks, nicht deine. Ich ermutige Sie, in Ihren (Produktionsäquivalenten) Umgebungen zu laufen. (2019/01/27)
Diagramme anzeigen 



CentOS 7.6 Mein Server
| Rahmen | Anfragen pro Sekunde | relativ | Spitzengedächtnis | relativ | Dateien | Typ |
|---|---|---|---|---|---|---|
| No-Framework | 11.742,54 | 19.7 | 0,41 | 1.0 | 1 | No-Framework |
| Altorouter | 3.619,92 | 6.1 | 0,50 | 1.2 | 6 | Router |
| PHP-Router | 3.358,57 | 5.6 | 0,52 | 1.3 | 8 | Router |
| Fastroute | 2,463,59 | 4.1 | 0,55 | 1.3 | 15 | Router |
| Flug | 1.660,40 | 2.8 | 0,68 | 1.6 | 15 | Mikro |
| beschwipst | 1.617,18 | 2.7 | 0,66 | 1.6 | 16 | Mikro |
| Limonade | 1.439,16 | 2.4 | 1.02 | 2.5 | 6 | Mikro |
| Siler-1.3 | 1,397,18 | 2.3 | 0,88 | 2.1 | 22 | Mikro |
| Klein.php | 1,271,65 | 2.1 | 0,78 | 1.9 | 20 | Router |
| Bearframework | 1.065,35 | 1.8 | 0,94 | 2.3 | 22 | Mikro |
| fettfrei | 1.049,13 | 1.8 | 1,50 | 3.6 | 6 | Mikro |
| Slim-3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | Mikro |
Macos Mojave 10.14.2 Mein Desktop
| Rahmen | Anfragen pro Sekunde | relativ | Spitzengedächtnis | relativ | Dateien | Typ |
|---|---|---|---|---|---|---|
| No-Framework | 4,573,15 | 7.2 | 0,37 | 1.0 | 1 | No-Framework |
| Altorouter | 2.617,56 | 4.1 | 0,47 | 1.3 | 6 | Router |
| PHP-Router | 2,417,23 | 3.8 | 0,47 | 1.3 | 8 | Router |
| Fastroute | 1,947,44 | 3.1 | 0,51 | 1.4 | 15 | Router |
| Flug | 1.545,02 | 2.4 | 0,63 | 1.7 | 15 | Mikro |
| beschwipst | 1,410.26 | 2.2 | 0,61 | 1.6 | 16 | Mikro |
| Siler-1.3 | 1,330,79 | 2.1 | 0,77 | 2.1 | 22 | Mikro |
| Klein.php | 1,246,66 | 2.0 | 0,74 | 2.0 | 20 | Router |
| Limonade | 1,193,01 | 1.9 | 1.00 | 2.7 | 6 | Mikro |
| Bearframework | 1.108,75 | 1.8 | 0,90 | 2.4 | 22 | Mikro |
| fettfrei | 1.062,73 | 1.7 | 1.44 | 3.9 | 6 | Mikro |
| Slim-3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | Mikro |
Hinweis (1): Diese Benchmarks sind durch wrk https://github.com/wg/wrk Performance begrenzt.
Installieren Sie den Quellcode als 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
Benchmarks laufen:
$ bash benchmark.sh
Siehe http: // localhost/php-micro-router-framework-Benchmark/.
Wenn Sie einige Frameworks bewerten möchten:
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
Ich habe unten in /etc/sysctl.conf hinzugefügt
# 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
und sudo sysctl -p ausführen.
Wenn Sie die aktuelle Konfiguration sehen möchten, führen Sie sudo sysctl -a aus.