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. Bitte beachten Sie, dass die Optimierung nur für "Hello World" nicht akzeptabel ist. Das Aufbau der schnellsten "Hello World" -Anwendung ist in diesem Projekt nicht das Ziel.
Das sind meine Benchmarks, nicht deine. Ich ermutige Sie, in Ihren (Produktionsäquivalenten) Umgebungen zu laufen.
(2017/02/14)

| Rahmen | Anfragen pro Sekunde | relativ | Spitzengedächtnis | relativ |
|---|---|---|---|---|
| Siler-0.6 | 2.069,69 | 20.3 | 0,25 | 1.0 |
| Kumbia-1.0-dev | 1.753,60 | 17.2 | 0,29 | 1.2 |
| staticphp-0.9 | 1.665,28 | 16.3 | 0,27 | 1.1 |
| Phalcon-2.0 | 1,618,39 | 15.9 | 0,26 | 1.1 |
| Tipsy-0.10 | 1,376,97 | 13.5 | 0,32 | 1.3 |
| Fatfree-3.5 | 965.16 | 9.5 | 0,41 | 1.7 |
| ci-3.0 | 753.09 | 7.4 | 0,42 | 1.7 |
| Nofuss-1.2 | 667.24 | 6.5 | 0,40 | 1.6 |
| Slim-3.0 | 550.43 | 5.4 | 0,61 | 2.5 |
| Bären-1.0 | 502.52 | 4.9 | 0,73 | 3.0 |
| Lumen-5.1 | 415.57 | 4.1 | 0,85 | 3.5 |
| yii-2,0 | 410.08 | 4.0 | 1.32 | 5.4 |
| ZE-1.0 | 403.34 | 4.0 | 0,75 | 3.1 |
| Cygnite-1.3 | 369.12 | 3.6 | 0,71 | 2.9 |
| Kraftstoff-1.8 | 344.26 | 3.4 | 0,63 | 2.6 |
| silex-2.0 | 342.81 | 3.4 | 0,78 | 3.2 |
| Phpixie-3.2 | 267,24 | 2.6 | 1.25 | 5.1 |
| Aura-2.0 | 233.54 | 2.3 | 0,88 | 3.6 |
| Kuchen-3.2 | 174.91 | 1.7 | 1,95 | 7.9 |
| ZF-3.0 | 133.87 | 1.3 | 2.24 | 9.1 |
| Symfony-3.0 | 131,50 | 1.3 | 2.18 | 8.9 |
| Laravel-5.3 | 101.94 | 1.0 | 2.83 | 11.5 |
Hinweis (1): Alle Ergebnisse werden mit phalcon.so und ice.so auf PHP ausgeführt. Wenn Sie Phalcon.so oder Eis nicht laden, erhöhen sich die RPS mit Ausnahme von Phalcon oder Eis wahrscheinlich ein wenig.
Hinweis (2): Diese Benchmarks sind durch ab -Leistung begrenzt. Siehe #62.
Wenn Sie PHP -Erweiterungs -Frameworks wie Phalcon verhindern möchten, müssen Sie die Erweiterungen installieren.
Installieren Sie den Quellcode als http: // localhost/php-Framework-Benchmark/:
$ git clone https://github.com/kenjis/php-framework-benchmark.git
$ cd php-framework-benchmark
$ bash setup.sh
Benchmarks laufen:
$ bash benchmark.sh
Siehe http: // localhost/php-Framework-Benchmark/.
Wenn Sie einige Frameworks bewerten möchten:
$ bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
$ bash benchmark.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
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.
<VirtualHost *:80>
DocumentRoot /home/vagrant/public
</VirtualHost>