Vorwort
Ich persönlich verwende immer noch PHP5.6 und 7.3 dient nur zum Testen, da PHP7 bereits starke Typisierung unterstützt und den Aufruf von String-Funktionsmethoden nicht mehr unterstützt Die PHP-Version meines persönlichen Projekts bleibt bei 5.6 hängen.
Kürzlich möchte ich ein wenig experimentieren und PHP 5.6, 7.3 und Tomcat 7, 8 und 9 ausprobieren. Ich habe einige Artikel gelesen, in denen ich sagte, dass PHP Datenbanken schneller betreibt, während Java Logic schneller abwickelt Ich möchte die Geschäftslogik an Java und die Datenbankoperationen an PHP übergeben.
Aber ist es so schneller? Vergleichen Sie es, die Daten sprechen für sich!
Übrigens verwende ich das Pagoda-Panel für die Serververwaltung und die gesamte Installation der Servicesoftware erfolgt im Pagoda-Panel.
Vorwort zum Test
Während des Tests stellte ich fest, dass die Ergebnisse von Tomcat7 und 8.5 ähnlich waren. Es wird geschätzt, dass 9 auch das gleiche Ergebnis liefern wird. Daher werde ich Tomcat9 nicht testen. Der Tomcat-Teil testet nur 7 und 8.5 in der Geschäftslogikverarbeitung und der Rest testet nur 8.5
Serverkonfiguration
● System: CentOS Linux 7.6.1810 (Core)
● Pagodenversion: 6.9.8
● Hersteller: Baidu Smart Cloud
● Typ: Intensiv-Computing-IC3
● CPU: 1 Kern
● Speicher: 1 GB
Geschwindigkeitsvergleich
Verarbeitungsgeschwindigkeit der Geschäftslogik
Zusätzlich von 0 bis 10000000
PHP5.6
<?php $time_start = microtime(true); $count = 0; for ($i = 0; $i < 10000000; ++ $i) { $count += $i; } $time_end = microtime(true); echo ($time_end - $time_start); // 结果:0.34648394584656
Ergebnis: 0,34648394584656
PHP7.3
<?php $time_start = microtime(true); $count = 0; for ($i = 0; $i < 10000000; ++ $i) { $count += $i; } $time_end = microtime(true); echo ($time_end - $time_start); // 结果:0.12653613090515
Ergebnis: 0,12653613090515
Fazit: PHP7.3 ist dreimal schneller als 5.6 in der Geschäftslogikverarbeitung
Tomcat7
<% java.util.Date d1 = new java.util.Date(); long start_time = d1.getTime(); // 单位:毫秒 long count = 0; for (long i = 0; i <= 10000000; ++ i) { count += i; } java.util.Date d2 = new java.util.Date(); long end_time = d2.getTime(); // 单位:毫秒 out.println(end_time - start_time); // 结果:17毫秒 %>
Ergebnis: 17 Millisekunden, nach ein paar weiteren Aktualisierungen sind es 4 bis 5 Millisekunden, hauptsächlich 4 Millisekunden
Tomcat8.5
Ergebnis: 99 Millisekunden, auch nach ein paar weiteren aktualisiert 4 Millisekunden
Zusammenfassung des Geschäftslogiktests
Java ist schließlich eine halbkompilierte und halbinterpretierte Sprache, daher ist es normal, dass PHP7 mehr als 100 Millisekunden erreicht PHP5 ist mit nur 300 Multimillisekunden etwas langsamer
Datenbank-IO-Test
Verwenden Sie PDOs zum Vorbereiten und Ausführen zum Testen
PHP5.6
● INSERT 10.000 Zeilen einfügen: 37,575320005417 Sekunden
● SELECT liest 10.000 Zeilen: 0,010236978530884 Sekunden
● SELECT-Schleife liest 10.000 Zeilen: 1,04604387 28333 Sekunden
● UPDATE-Update 1 Zeile 0000: 0,044967889785767 Sekunden
● UPDATE-Schleife zum Aktualisieren von 10.000 Zeilen: 36,463224887848 Sekunden
● DELETE zum Löschen von 10.000 Zeilen: 0,034432888031006 Sekunden
● DELETE-Schleife zum Löschen von 10.000 Zeilen : 37,19838404 6555 Sekunden
PHP7.3
● INSERT fügt 10000 Zeilen ein: 33,949599027634 Sekunden
● SELECT liest 10000 Zeilen: 0,0212 60023117065 Sekunden
● SELECT-Schleife liest 100 00 Zeilen: 1,0032389163971 Sekunden
● UPDATE aktualisiert 10.000 Zeilen: 0,040410995483398 Sekunden
● UPDATE-Schleife aktualisiert 10.000 Zeilen: 36,759881019 592 Sekunden
● LÖSCHEN 1 Zeile 0000 löschen: 0,046122074127197 Sekunden
● DELETE-Schleife zum Löschen von 10.000 Zeilen: 35,682950973511 Sekunden
PHP-Zusammenfassung: Es gibt fast keinen Versionsunterschied bei Datenbank-IO und Ausführung Eine einzelne Anweisung ist schneller als die Ausführung einer Anweisung in einer Schleife
Tomcat8.5
Die erste Ausführung vor der Kompilierung, die zweite Ausführung nach der Kompilierung
● INSERT fügt 10.000 Zeilen ein: vor der Kompilierung: 39,738 Sekunden, kompilieren nach: 37,104 Sekunden
● SELECT liest 10.000 Zeilen: vor der Kompilierung: 0,079 Sekunden, nach der Kompilierung: 0,028 Sekunden
● SELECT-Schleife liest 10.000 Zeilen: vor der Kompilierung: 2,303 Sekunden, nach der Kompilierung: 1,775 Sekunden
● UPDATE aktualisiert 10.000 Zeilen: vor der Kompilierung: 0,060 Sekunden, nach der Kompilierung: 0,040 Sekunden
● UPDATE-Schleife aktualisiert 10.000 Zeilen: vor der Kompilierung: 43,326 Sekunden, nach der Kompilierung: 40,847 Sekunden
● DELETE löscht 10.000 Zeilen: erste Ausführung: 0,137 Sekunden
● DELETE-Schleife löscht 10.000 Zeilen: erste Ausführung: 40,597 Sekunden
Zusammenfassung: Java verfügt über starke Geschäftslogikfähigkeiten, aber die Datenbank-IO-Geschwindigkeit ist langsamer als PHP, während für PHP das Gegenteil der Fall ist.
Hybrid-Entwicklungstest
Geschäftslogik ist in Java geschrieben, PHP ruft Java über CURL auf, Testgeschwindigkeit
Ergebnis:
Erster Test: 0,51814317703247 Sekunden
Zweiter Test: 0,016547918319702 Sekunden
Zusammenfassung:
Der Erste Der Test kann einige Zeit dauern, da die Java-Seite kompiliert werden muss. Der zweite Test muss jedoch nicht mehr kompiliert werden und ist daher sehr schnell.
Später wurden mehrere Tests durchgeführt, die Ergebnisse waren alle zufriedenstellend und die Geschwindigkeit war etwa zehnmal schneller als PHP7.
Der einzige Nachteil der gemischten Entwicklung besteht darin, dass die Entwicklungseffizienz nicht hoch ist, was zu weiteren Fallstricken führen kann, aber in Bezug auf den Betrieb kann jeder seine Vorteile nutzen.
Ich persönlich stehe dem neutral gegenüber und empfehle es weder, noch lehne ich es ab, da verschiedene Projekte relevante Bedürfnisse haben können und diese Methode möglicherweise die beste Wahl ist.
Das obige ist der detaillierte Inhalt vonGeschwindigkeitsvergleich von PHP5.6 und 7.3, Tomcat7 und 8.5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!