


Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)
Wir haben so viel über PHP7 gelernt. Ich weiß nicht, wie viel Sie über PHP7 wissen. Also nicht Sorge, dieser Artikel ist der Leitfaden, den jeder tiefer verstehen muss.
Hintergrund der Forschung zur PHP7-Technologie
- Im Zusammenhang mit der Umsatzsteigerung des Unternehmens und der Reduzierung der Ausgaben müssen wir Kosten sparen
- Im Vergleich zur aktuellen PHP-Version 5. Jährliche Daten, täglicher durchschnittlicher PV, jährliches Wachstum von 348 %, täglicher durchschnittlicher UV-Wert, jährliches Wachstum von 112 %)
- Die mobile Internetumgebung erfordert, dass unsere Programme schneller auf Benutzeranfragen reagieren, um ein besseres Benutzererlebnis zu bieten
- Für neue Technologien Wunsch nach Wissen (um meine eigene kleine Eitelkeit zu befriedigen)
- Hinweise zur PHP7-Leistung
Erster Eindruck von der PHP7-Leistung (dreimal mehr als PHP5)
1. Leistungsvergleich – schneller Sortieralgorithmus (nach zufälliger Generierung von 5000 Zahlen) Sortierung nach dem schnellen Algorithmus)
PHP5.1 Die durchschnittliche Antwortzeit der 5000-Nummern-Schnellsortierung beträgt 2587 ms PHP5.2 Die durchschnittliche Antwortzeit der 5000-Nummern-Schnellsortierung beträgt 2625 ms
PHP5.3 Die durchschnittliche Antwortzeit der 5000-Nummern-Schnellsortierung beträgt 2509 ms
PHP5.4 Die durchschnittliche Antwortzeit von Die schnelle Sortierung mit 5000 Zahlen beträgt 2339 ms.
PHP7.0. Die durchschnittliche Antwortzeit der schnellen Sortierung mit 5000 Zahlen beträgt 685 ms Reaktionszeit 521 ms
PHP5.3 WordPress durchschnittliche Antwortzeit 498 ms
PHP5.4 WordPress durchschnittliche Antwortzeit 470 ms
PHP5.4 500 Zahlen Schnell Sortieren von TPS 552
PHP7.0 500 Zahlen, schnelles Sortieren von TPS 3165
Flyme-Community-APP-Startseite PHP5.4 TPS 1535
Flyme-Community-APP-Startseite PHP7.0 TPS 1975
Flyme-Community-APP-Abschnitt Listenseite PHP7.0 TPS 2387
Mehrere Probleme und Lösungen beim Leistungstest
Warum kann die Leistung von PHP7 so stark verbessert werden?
1. JIT
2. Änderungen in Zval
3. Interner Typ zend_string
4. Änderungen in PHP-Arrays (HashTable und Zend Array)
6. Durch Makrodefinition und Inlining-Funktion (inline), zulassen Der Compiler muss einen Teil der Arbeit im Voraus abschließen
Warum beträgt die tatsächliche Verbesserung der Geschäftsleistung von PHP7 nur etwa 30 %?
Tatsächliche Geschäfte verfügen nicht unbedingt über eine sehr komplexe Berechnungslogik.
Tatsächliche Geschäfte werden Redis und MYSQL verwenden. Netzwerk- und E / A-Engpässe wirken sich auf die Gesamtleistung von PHP7 aus.
HTTPS-Leistungsprobleme schränken die Funktionen von PHP7 ein
Redis Proxy ist für Redis-Hochverfügbarkeit und verteiltes Caching gedacht.
Nach Leistungstests handelt es sich um eine relativ direkte Verbindung zu Redis. Der Leistungsverlust bei der Verwendung von Proxy beträgt etwa 10–15 % (je nach Unternehmen kann es einen großen Unterschied geben)- Gibt es also Raum für eine Optimierung des Proxys?
- Probleme mit langen und kurzen Verbindungen zwischen PHP und Redis
- Die Leistung langer PHP7 Redis-Verbindungen ist etwa 10 % höher als die kurzer Verbindungen (verschiedene Unternehmen variieren stark)
Atlas ist eine Datenbank-Middleware, die von 360 entwickelt und gepflegt wird. Es befindet sich zwischen der Anwendung und MySQL. Es implementiert das Client-Server-Protokoll von MySQL, kommuniziert mit der Anwendung als Server und kommuniziert mit MySQL als Client. Es schützt DB-Details vor Anwendungen und reduziert die Belastung von MySQL.
Atlas unterstützt die Ausfallzeit der Hauptdatenbank, ohne das Lesen, die Lese-/Schreibtrennung, das automatische Tabellen-Sharding, die Sicherheitsverarbeitung, den reibungslosen Neustart, den Verbindungspool usw. zu beeinträchtigen.
Nach Verwendung des Datenbankverbindungspools wird die TPS-Leistungsverstärkung um 80 % erhöht.
Nehmen wir Ein Blick auf den Effekt
Ein paar Details zur PHP7-Leistungsoptimierung
PHP7 Opcache (um etwa das 1-fache verbessert)
Wie funktioniert Opcache?
- PHP ist eine interpretierte Sprache. Die Zend-Engine interpretiert den PHP-Code in ausführbaren Maschinencode (Operate Code) und übergibt ihn dann zur Ausführung an die CPU.
-
Wie Opcache wird beschleunigt. %-10%)
Obwohl PGO die Kompilierungseffizienz verbessern kann, wird es nicht häufig verwendet.PGO ist eine Kompilierungsoptimierungstechnologie, die mit Compilern wie GCC verwendet werden kann, um die Kompilierungseffizienz des Compilers zu verbessern.
Der Grund ist ganz einfach: - 1. Das komplizierte duale Kompilierungsmodell und die begrenzten Nutzungsszenarien lassen PGO nutzlos erscheinen
2. Nach dem Aufkommen von Produkten wie Opcache ist die durch PGO erzielte Leistungsverbesserung nicht sehr offensichtlich.
Öffnen Sie mehrere PHP-FPM-Hauptprozesse (Erhöhung um etwa 10 %).
<source lang="xml" collapse="false" first-line="1"> #php-fpm.conf listen = /dev/shm/php-fcgi.sock #php-fpm2.conf listen = /dev/shm/php-fcgi2.sock #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm2.conf #代理 upstream backend{ server unix:/dev/shm/php-fcgi.sock; server unix:/dev/shm/php-fcgi2.sock; } </source>
Der Standardspeicher ist um 4 KB ausgelagert, und die virtuelle Adresse und die Speicheradresse müssen konvertiert werden , und diese Konvertierung erfordert eine Tabellensuche.
Um den Tabellensuchvorgang zu beschleunigen, verfügt die CPU über einen integrierten TLB (Translation Lookaside Buffer). Wenn die virtuelle Seite kleiner ist, verringert sich natürlich die Anzahl der Einträge in der Die Tabelle wird größer sein.
Und die TLB-Größe ist begrenzt. Je mehr Einträge vorhanden sind, desto höher ist der TLB-Cache-Miss. Wenn wir also große Speicherseiten aktivieren können, können wir den TLB-Cache-Miss indirekt reduzieren. ?
Nginx HTTPS-Leistungsprobleme
Im Zusammenhang mit der Umsatzsteigerung des Unternehmens und der Reduzierung der Ausgaben müssen wir Kosten sparen
Im Vergleich zur aktuellen PHP-Version 5. Die Benutzer wachsen schnell (der durchschnittliche tägliche PV von 15 Jahre Daten haben ein jährliches Wachstum von 348 % und der durchschnittliche tägliche UV-Wert weist ein jährliches Wachstum von 112 % auf. Die mobile Internetumgebung erfordert, dass unsere Programme schneller auf Benutzeranfragen reagieren, um ein besseres Benutzererlebnis zu erreichen Neue Technologien (um ein wenig Eitelkeit zu befriedigen)
Verwandte Lernvideos teilen:
php-Video-TutorialDas obige ist der detaillierte Inhalt vonVerstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)