Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6

Ausführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6

藏色散人
藏色散人nach vorne
2020-04-23 14:07:423016Durchsuche

Die Version der virtuellen Homestead-Maschine, die ich derzeit installiert habe, ist 2.1.8:

Ausführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6

Die auf dieser Version von Homestead vorinstallierte PHP-Version ist 5.6.15:

Ausführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6

Wir verwenden den Befehl ab (das von Apache bereitgestellte Leistungstesttool), um die Leistung der Laravel-Anwendung zu testen (wobei wir die mit Laravel entwickelte Blog-Anwendung verwenden, über die wir gerade sprechen). als Beispiel) in dieser Version simulieren wir 10.000 Anfragen, 100 gleichzeitige Stresstests:

ab -n 10000 -c 100 http://blog.app/

Die laufenden Ergebnisse sind wie folgt:

This is ApacheBench, Version 2.3 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking blog.app (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: nginx/1.8.0
Server Hostname: blog.app
Server Port: 80

Document Path: /
Document Length: 324 bytes

Concurrency Level: 100
Time taken for tests: 69.354 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 19851388 bytes
HTML transferred: 10230000 bytes
Requests per second: 144.19 [#/sec] (mean)
Time per request: 693.545 [ms] (mean)
Time per request: 6.935 [ms] (mean, across all concurrent requests)
Transfer rate: 279.52 [Kbytes/sec] received

Connection Times (ms)
                  min  mean[+/-sd]  median  max
Connect:       0       0     0.2                 0      3
Processing: 17    684   319.1           588   2720
Waiting:      17     684   319.1           588   2720
Total:          20     684   319.1           588   2720

Percentage of the requests served within a certain time (ms)
 50%      588
 66%      695
 75%      842
 80%      933
 90%    1155
 95%    1321
 98%    1545
 99%    1813
 100%  2720 (longest request)

Was wir hier betonen wollen, ist das Rot Fettgedruckter Text, der die Anzahl der pro Sekunde verarbeiteten Anfragen angibt, was der wichtigste Leistungsindikator des Messsystems ist. Abhängig von der System- und Hardwarekonfiguration kann es zu Abweichungen in den Daten kommen.

Jetzt werden wir PHP in Homestead auf Version 7.0 aktualisieren, wie im Abschnitt „Laravel Homestead unterstützt PHP 7 “ beschrieben.

Verwenden Sie vagrant ssh, um sich bei der neu hinzugefügten virtuellen Maschine Homestead-7 anzumelden und zu überprüfen, ob die PHP-Versionsinformationen korrekt sind:

Ausführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6

Zu diesem Zeitpunkt Zugriff auf http im Browser ://blog.app meldet einen Fehler, da die neu installierten Homestead-Datenbankdaten leer sind. Sie müssen sich bei der virtuellen Maschine anmelden und den folgenden Befehl ausführen, um die Migration auszuführen und die Daten einzugeben:

php artisan migrate 
php artisan db:seed

Ein erneuter Besuch ist in Ordnung, fahren wir mit dem gleichen ab-Befehl fort, um einen Stresstest durchzuführen:

ab -n 10000 -c 100 http://blog.app/

Die laufenden Ergebnisse sind wie folgt:

This is ApacheBench, Version 2.3 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking blog.app (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: nginx/1.8.0
Server Hostname: blog.app
Server Port: 80

Document Path: /
Document Length: 324 bytes

Concurrency Level: 100
Time taken for tests: 45.032 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 20101202 bytes
HTML transferred: 10230000 bytes
Requests per second: 222.06 [#/sec] (mean)
Time per request: 450.319 [ms] (mean)
Time per request: 4.503 [ms] (mean, across all concurrent requests)
Transfer rate: 435.91 [Kbytes/sec] received

Connection Times (ms)
                  min  mean[+/-sd]  median   max
Connect:       0       0     0.2                 0       4
Processing: 11    443   252.8           379   1978
Waiting:      11     443   252.8           379   1978
Total:          15     443   252.8           379   1978

Percentage of the requests served within a certain time (ms)
 50%      379
 66%      517
 75%      590
 80%      631
 90%      795
 95%      938
 98%    1060
 99%    1229
 100%  1978 (longest request)

Nach dem Vergleich ist die Leistung derselben Laravel-Anwendung unter PHP 7.0 im Vergleich zu PHP 5.6 um 54 % verbessert. Natürlich variieren die Daten je nach Umgebung, und es gibt noch mehr Spielraum zur Verbesserung.

Ursprüngliche Adresse: https://xueyuanjun.com/post/2398

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung zur vergleichenden Analyse der Leistung von Laravel-Bloganwendungen unter PHP7.0 und PHP5.6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:xueyuanjun.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen