Heim >Backend-Entwicklung >PHP-Tutorial >So aktivieren Sie Opcode in PHP7, um eine leistungsstarke Leistung zu erzielen. Detaillierte Erklärung der PHP-Kenntnisse
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum Aktivieren von Opcode in PHP7 vor, um eine leistungsstarke Leistung zu erzielen. Der Artikel stellt ihn ausführlich anhand von Beispielcode vor. Er bietet einen gewissen Referenz-Lernwert für alle, die ihn benötigen es kann folgen Lassen Sie uns gemeinsam mit dem Herausgeber lernen
Vorwort
Bruder Niao gab in seinem Blog einige Tipps zur Verbesserung der PHP-Leistung 7, Der erste Schritt besteht darin, Opcache zu aktivieren:
Denken Sie daran, Zend Opcache zu aktivieren, da PHP7 auch ohne Opcache schneller ist als PHP-5.6 mit aktiviertem Opcache, sodass im vorherigen Testzeitraum jemand Opcache nicht aktiviert hat
Was ist also Opcache?
Der Vorgänger von Opcache ist Optimizer+, eine Closed-Source-, aber kostenlos nutzbare PHP-Optimierungsbeschleunigungskomponente, die von Zend, dem offiziellen Unternehmen von PHP, entwickelt wurde. Optimizer+ speichert die durch Vorkompilierung des PHP-Codes generierte Skriptdatei Opcode im gemeinsam genutzten Speicher für die wiederholte Verwendung in der Zukunft und vermeidet so den Zeitaufwand für das Lesen des Codes von der Festplatte und das erneute Kompilieren. Gleichzeitig werden auch einige Codeoptimierungsmodi angewendet, um die Ausführung des Codes zu beschleunigen. Dadurch wird die Ausführung von PHP beschleunigt.
Der normale Ausführungsprozess von PHP ist wie folgt
Anforderungsanforderung (Nginx, Apache, CLI usw.) -->Zend-Engine liest . PHP-Datei – > Das Wörterbuch und die Ausdrücke scannen –> Den auszuführenden Computercode erstellen –> 🎜> Bei jedem Anfordern eines PHP-Skripts werden die oben genannten Schritte einmal ausgeführt. Wenn sich der PHP-Quellcode nicht ändert, muss der Opcode natürlich nicht jedes Mal neu generiert werden Im Web können wir den Opcode für die zukünftige Verwendung zwischenspeichern. Wäre es nicht schneller, direkt auf den zwischengespeicherten Opcode zuzugreifen? > Der Zweck des Opcode-Cache besteht darin, wiederholte Kompilierungen zu vermeiden und den CPU- und Speicheraufwand zu reduzieren.
Im Folgenden wird die Installation von Opcache vorgestelltInstallation: 1. Finden Sie die Erweiterung von Opcache, meine ist php7.1
yum list php71*
2. Erweiterungen installieren
yum install php71w-opcache.x86_64
Konfiguration:
zend_extension=opcache.so
[opcache];Opcache aktivieren
opcache.enable=1 ;In der CLI-Umgebung aktiviert PHP OPcacheopcache.enable_cli =1;PHP verwendet eine Technologie namens String-Interning, um die Leistung zu verbessern. Wenn Sie beispielsweise die Zeichenfolge „foobar“ 1000 Mal in Ihrem Code verwenden, weist PHP nur bei der ersten Verwendung einen unveränderlichen Speicherbereich zum Speichern der Zeichenfolge zu und verweist bei den anderen 999 Malen direkt darauf Speicherbereich. Diese Option bringt diese Funktion auf die nächste Ebene – standardmäßig ist dieser unveränderliche Speicherbereich nur in einem einzelnen PHP-FPM-Prozess vorhanden. Wenn diese Option festgelegt ist, ist er in allen PHP-FPM-Prozessen vorhanden. Bei größeren Anwendungen kann dies sehr effektiv sein, um Speicher zu sparen und die Anwendungsleistung zu verbessern.
;OPcache-Speichergröße für gemeinsam genutzten Speicher, Einheit MB
opcache.memory_consumption=128Der Wert dieser Option ist in Megabyte angegeben, was 16 MB bedeutet.
opcache.interned_strings_buffer=8; maximale Anzahl von PHP-Dateien, die im Speicher zwischengespeichert werden können. Diese Option muss so groß eingestellt werden, dass sie größer ist als die Summe aller PHP-Dateien in Ihrem Projekt.
opcache.max_accelerated_files=4000
Der minimale Wertebereich des Einstellungswerts beträgt 200, der maximale Wert beträgt 100000 vor PHP 5.5.6 und 1000000 nach PHP 5.5.6. Das heißt zwischen 200 und 1.000.000.
; Legen Sie die Cache-Ablaufzeit fest (in Sekunden). Überprüfen Sie sie jedes Mal.
opcache.revalidate_freq=60; Wörtlich bedeutet „ein schnelleres Herunterfahren ermöglichen“. Seine Aufgabe besteht darin, einen schnelleren Mechanismus zum Aufrufen des Destruktors im Code am Ende einer einzelnen Anfrage bereitzustellen, wodurch die Antwortgeschwindigkeit von PHP und die Wiederverwendung von PHP-Prozessressourcen beschleunigt werden, sodass die Anwendung schneller auf die nächste Anfrage reagieren kann. Setzen Sie ihn auf 1, um diesen Mechanismus zu verwenden.
opcache.fast_shutdown=1; Wenn aktiviert (auf 1 gesetzt), prüft OPcache den Zeitstempel der Datei (Zeitstempel) in der durch opcache.revalidate_freq festgelegten Anzahl von Sekunden, um zu prüfen, ob das Skript aktualisiert wurde.
Wenn diese Option deaktiviert ist (auf 0 gesetzt), wird opcache.revalidate_freq ignoriert und PHP-Dateien werden nie überprüft. Dies bedeutet, dass Sie die Auswirkungen des Updates nicht sehen, wenn Sie Ihren Code ändern, ihn dann auf dem Server aktualisieren und dann die Funktion anfordern, die dem aktualisierten Code im Browser entspricht.
Es wird dringend empfohlen, dass Sie Verwenden Sie es in einer Produktionsumgebung. Setzen Sie es auf 0. Starten Sie PHP und den Webserver nach der Aktualisierung des Codes reibungslos neu.
opcache.validate_timestamps=0; Opcache-Dateicache aktivieren (experimentell), indem wir Opcache den Opcode-Cache in einer externen Datei zwischenspeichern lassen .
Auf diese Weise speichert PHP einige Opcode-Binärexportdateien im Verzeichnis /tmp, die während des gesamten PHP-Lebenszyklus vorhanden sein können.
opcache.file_cache=/tmp
Ansicht phpinfo :
Testergebnisse:
Die gleiche Schnittstelle wurde von ein paar hundert Millisekunden zuvor auf etwa 50 ms verbessert jetzt
Zusammenfassung
Detaillierte Erläuterung der Ausnahmebehandlung in ThinkPHP_php-Beispielen
PHP7-Tipps zum Hochladen von Bildern basierend auf Curl
Das obige ist der detaillierte Inhalt vonSo aktivieren Sie Opcode in PHP7, um eine leistungsstarke Leistung zu erzielen. Detaillierte Erklärung der PHP-Kenntnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!