In den Projekten, an denen ich arbeite, ist PHP aufgrund von Anforderungen oder um die Mängel von PHP auszugleichen, muss ich verschiedene Erweiterungen für PHP erstellen. PHP selbst unterstützt beispielsweise keine Threads und Warteschlangen , und Prozesse. Es kann nicht in einer Produktionsumgebung verwendet werden. Man kann sagen, dass PHP keinen „Prozess“ hat, daher gibt es im Internet viele Artikel, die erklären, wie man PHP-Warteschlangen, Multithreading usw. implementiert Verständnis: Anstatt PHP selbst zum Implementieren dieser Funktion zu verwenden, die keine Robustheit garantieren kann, ist es besser, einige Sprachen zu erkunden und zu verwenden, die integriert sind und eine gute Leistung erbringen.
Ich habe auf Weibo etwas über die Golang-Sprache gelernt. Die Syntax von Golang ähnelt C und Python. Schüler mit Erfahrung in diesen beiden Sprachen werden mehr anfangen reibungslos! Die Vorteile der Golang-Sprache sind hier, ich werde sie nicht einzeln erklären! !
Nachdem ich eine Zeit lang studiert hatte, stieß das Wartungsgeschäft zufällig auf einen Engpass. Da das von mir verwaltete Geschäft außerdem zur Schnittstellenschicht gehörte, war die Logik relativ einfach und es wurden nur JSON-Daten ausgegeben, sodass ich damit begann Verwenden Sie Golang, um das bestehende System zu rekonstruieren. Da einige Kollegen skeptisch gegenüber Golang sind und die meisten Online-Leistungsvergleiche nur Hallo-Wort-Ausgaben sind, die wenig Referenzwert haben, habe ich zwei Online-Intranet-Maschinen verwendet Formaler Geschäftsleistungsvergleich zwischen PHP und Golang
Serverkonfiguration: 16-Core E5620 bei 2,40 GHz 11G-Speicher
Business umfasst: DB (Oracle) und Redis-Abfrage, wenn ein Cache vorhanden ist Redis abfragen und direkt lesen, zwei Primärschlüssel stapelweise abfragen
Verwenden Sie den AB-Test von Apache, um die Parallelität von 200, 20.000 Anfragen zu testen
Golang-Parallelitätstest
Golangs QPS beträgt etwa 9675/s, der Höchstwert liegt bei etwa 10200/s, die CPU-Auslastung beträgt etwa 10,6 %. Golang hat Multi-Core aktiviert und 40 Redis-Verbindungspools verwaltet
Der obige PHP-Link ist Golangs URL-Umschreibung, um mit PHP-Projekten kompatibel zu sein, bitte nicht falsch verstehen!
PHP-Parallelitätstest
PHPs QPS beträgt etwa 1726/s, der Höchstwert liegt bei etwa 2100/s, der CPU-Spitzenwert liegt bei 50,1 %, was ziemlich beängstigend ist
Außerdem habe ich auch Batch-Abfragen weiterer Primärschlüssel getestet Die Geschwindigkeit von Golang sank auf 4700/s und die von PHP auf 1078/s. Als die Parallelität von ab auf 400 erhöht wurde, kam es zu Anforderungsfehlern.
Nachdem die Parallelität von Golang auf 2500 erhöht wurde, war ich überrascht, dass die Leistung geringer war immer noch ausgezeichnet. Wenn Sie Zweifel haben, können Sie es selbst testen
Die Schlussfolgerung aus den obigen Testergebnissen: Aufgrund der Multi-Core-Auslastung ist Golangs „Multi-Threading“ sowie Mit dem Redis-Verbindungspool sind Sie im Parallelitätsvergleich mit PHP weit vorne und die Verarbeitungsleistung ist etwa viermal so hoch wie die von PHP.
Daher wird empfohlen, eine große Anzahl von Anforderungen und Begegnungen aufrechtzuerhalten Engpässe Die Teilnehmer des Projekts können versuchen, es mit Golang zu verbessern
Das obige ist der detaillierte Inhalt vonWarum ist Go leistungsfähiger als PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!