Heim >Backend-Entwicklung >PHP7 >Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)

Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)

慕斯
慕斯nach vorne
2021-06-25 10:22:113350Durchsuche

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

  1. Im Zusammenhang mit der Umsatzsteigerung des Unternehmens und der Reduzierung der Ausgaben müssen wir Kosten sparen
  2. 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 %)
  3. Die mobile Internetumgebung erfordert, dass unsere Programme schneller auf Benutzeranfragen reagieren, um ein besseres Benutzererlebnis zu bieten
  4. Für neue Technologien Wunsch nach Wissen (um meine eigene kleine Eitelkeit zu befriedigen)
  5. 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 Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht) 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

PHP7.0 WordPress durchschnittliche Antwortzeit 158 ​​ms
3. Leistungsvergleich - Flyme Community APP

Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)

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-Abschnittslistenseite PHP5.4 TPS 2237
Flyme-Community-APP-Abschnitt Listenseite PHP7.0 TPS 2387

Mehrere Probleme und Lösungen beim LeistungstestVerstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)
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)

5. Funktionsaufrufkonvention

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)
  1. Gibt es also Raum für eine Optimierung des Proxys?
  2. Probleme mit langen und kurzen Verbindungen zwischen PHP und Redis
  3. Die Leistung langer PHP7 Redis-Verbindungen ist etwa 10 % höher als die kurzer Verbindungen (verschiedene Unternehmen variieren stark)
Probleme mit dem MYSQL-Datenbankverbindungspool


Der Datenbankverbindungspool ist verantwortlich für die Zuordnung, verwaltet und gibt Datenbankverbindungen frei, sodass Anwendungen eine vorhandene Datenbankverbindung wiederverwenden können, anstatt eine neue herzustellen.

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

Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)

Ein paar Details zur PHP7-Leistungsoptimierung

PHP7 Opcache (um etwa das 1-fache verbessert)

Wie funktioniert Opcache?
  1. 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.
    Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)
  2. Wie Opcache wird beschleunigt. %-10%)
    Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)PGO ist eine Kompilierungsoptimierungstechnologie, die mit Compilern wie GCC verwendet werden kann, um die Kompilierungseffizienz des Compilers zu verbessern.

    Obwohl PGO die Kompilierungseffizienz verbessern kann, wird es nicht häufig verwendet.
  3. Der Grund ist ganz einfach:
  4. 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.
    Verstehen Sie die Transformation der PHP7-Leistung in einer Minute (Leistung um das Vierfache erhöht)Ö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>
HugePage (Erhöhung um 2 % bis 3 %)


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


Hintergrund der Erforschung der 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. 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-Tutorial

Das 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!

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