PHP in Version 5.5 verfügt über eine integrierte Caching-Engine-OPCache-, die vorkompilierte Skript-Bytecode im Speicher gespeichert ist. Wenn Sie mit APC oder XCache vertraut sind, wissen Sie bereits, wie solche Motoren funktionieren. Da jedes PHP -Skript zur Laufzeit kompiliert wird, wird ein Teil der Ausführungszeit zur Umwandlung des menschlichen lesbaren Codes in Code verwendet, der von der Maschine verstanden werden kann. Eine Bytecode -Cache -Engine wie Opcache, APC oder XCache nur einmal - während der ersten Ausführung einer bestimmten PHP -Datei. Anschließend wird das vorkompilierte Skript im Speicher gespeichert, was zu Leistungssteigerungen in Ihren PHP -Anwendungen führen sollte.
Über dem Web finden Sie problemlos viele Tutorials, die alle OPCACHE -Installations- und Konfigurationsschritte abdecken (sie werden standardmäßig auf 5.5 aktiviert, können jedoch als Erweiterung bei älteren Versionen installiert werden). Lesen Sie den Artikel unten, um die Antworten auf einige der typischen Fragen zu verschiedenen praktischen Aspekten der Arbeit mit dieser speziellen Cache -Engine zu finden.
Natürlich kommt es darauf an. Wenn Ihr Server es schafft, den eingehenden Verkehr zu bewältigen und niedrige Reaktionszeiten zu führen, haben Sie wahrscheinlich nicht die Notwendigkeit, an der Leistung zu arbeiten. Aber auf einer größeren Website mit viel Verkehr kann jeder kleine Optimierungsschritt zählen. Durch die Implementierung von OPCache können Sie mehr Anfragen pro Sekunde bearbeiten und die Antwort schneller zurückgeben als ohne Bytecode -Caching -Engine. Da Opcache ziemlich einfach zu installieren und zu konfigurieren ist, werden Sie nicht zu viel Zeit damit verbringen, alles einzurichten.
Wenn Sie nach einigen OPCache -Leistungstests suchen, sollten Sie den Artikel von AppDynamics über die Implementierung dieser Cache -Engine auf jeden Fall lesen. In ihren Tests reduzierte die Installation von OPCAAE die mittlere Reaktionszeit einer Website um 14%. Die Verringerung der Antworten der unterschiedlichen Aktionen einer Webanwendung variierte zwischen 6% und 74%. Wie im Artikel erläutert, können verschiedene Code -Teile mehr oder weniger von der Implementierung einer Bytecode -Caching -Engine profitieren. Ich ermutige Sie, den Artikel ausführlich zu lesen und zu überprüfen, wo Sie den höchsten Leistungsschub erhalten können.
Wenn Sie nach anderen Ressourcen zur Opcache -Leistung suchen, überprüfen Sie die Beispiele auf Fideloper.com und Massivescale.com. Beide Tests gaben an
2. Ich benutze bereits APC -Cache. Soll ich zu Opcache migrieren?Zunächst funktioniert der APC -Cache nicht mit den neuesten PHP -Versionen. Es unterstützt PHP 5.5 überhaupt nicht. Es wird auch nicht empfohlen, es auf PHP 5.4 zu installieren, da diese Konfiguration zu Ausführungsfehlern führen kann, die die gesamte Anwendung brechen. Überprüfen Sie einfach den Wikipedia -Artikel über PHP -Beschleuniger oder diesen Stapelüberlauf -Thread, um einige Details zu erhalten.
opcache ist jedoch mit PHP 5.5 gebündelt, sodass es definitiv mit dieser PHP -Version funktioniert. Wie in der Dokumentation geschrieben, kann es auch mit älteren PHP -Versionen installiert werden - von 5.2 bis 5,4. Im Allgemeinen ist Opcache enger an PHP selbst gebunden als andere Bytecode -Cache -Motoren - was zu häufigeren Updates und weniger Fehlern führen kann (hier finden Sie hier Details).
Das einzig Wichtigste, was Sie bei der Migration von APC zu Opcache erinnern sollten, ist die Tatsache, dass Letzteres nicht als Daten zwischen Daten zwischen dem Caching -Engine fungiert. Wenn Sie APC bereits implementiert haben, verwenden Sie möglicherweise die Funktionen von APC_ADD () und APC_Fetch (), die als Schnittstelle zu einem Daten -Caching -Dienst dienen. OPCache ist nur eine Bytecode -Caching -Engine, sodass sie keine ähnliche Funktionalität bietet. Wenn Sie vorhaben, von APC auf OPCache umzusteigen, denken Sie daran, diese Einschränkung zu berücksichtigen. Denken Sie daran, dass es das APCU -Projekt gibt, wenn Sie die Funktion "APC Userland" beibehalten möchten (dank Oscar Merina, die in den Kommentaren darauf hingewiesen haben).
.
Wenn Sie Opcache bereits installiert und konfiguriert haben, können Sie feststellen, dass Sie steuern können, welche PHP -Dateien tatsächlich zwischengespeichert werden. Die gesamte Cache -Engine arbeitet im Hintergrund und ist für einen Besucher oder einen Webentwickler transparent. Um seinen Status zu überprüfen, können Sie eine der beiden Funktionen verwenden, die solche Informationen enthalten: opcache_get_configuration () und opcache_get_status (). Glücklicherweise gibt es einige vorbereitete Scrips, die alle Opcache -Konfigurations- und Statusdaten abrufen und auf freundliche Weise anzeigen. Sie müssen keinen Code selbst schreiben, und nehmen Sie einfach eines der Tools von diesen unten ab:
- Opcache -Bedienfeld,
-Opcache-status von Rasmus Lerdorf,
- Opcachegui von Pieter Hordijk,
-Opcache-gui von Andrew Collington.
In meinen Projekten verwende ich das Opcache-Gui-Skript, das alle Funktionen hat, die ich brauche. Um zu überprüfen, ob die Caching-Engine ordnungsgemäß funktioniert, lesen Sie einfach die Prozentsätze auf der Registerkarte "Übersicht" auf der Opcache-Gui-Seite. Wenn die Speicherverwendung und die Trefferwerte größer als Null sind, bedeutet dies, dass der OPCACHE den PHP -Code zwischengespeichert und die zwischengespeicherten Dateien zur Verarbeitung der Anforderungen verwendet werden. Um eine Liste spezifischer PHP -Dateien anzuzeigen, die zwischengespeichert werden, navigieren Sie einfach zur Registerkarte „Dateiverbrauch“. Schauen Sie sich die Dateiliste an, um sicherzustellen, dass die Dateien in Ihren Projekten zwischengespeichert wurden.
Grundsätzlich sollte die Opcache -Engine für Sie als Codeautor transparent sein. Dies bedeutet, dass Sie jeden gewünschten Code in Ihre Anwendung einfügen können (was mit der von Ihnen verwendeten PHP -Version funktioniert) und Opcache sollte ihn ordnungsgemäß verarbeiten. Es funktioniert jedoch nur, wenn die OPCACHE -Konfiguration korrekt eingestellt ist. Eine falsche Cache -Engine -Konfiguration kann Ihre gesamte Website brechen.
Zuallererst müssen Sie in jedem typischen Projekt sicherstellen, dass die Option opcache.use_cwd auf true eingestellt ist. Wenn Sie diese Einstellung aktivieren, wird die OPCACHE -Engine die vollständigen Dateipfade untersucht, um zwischen Dateien mit denselben Namen zu unterscheiden. Das Einstellen auf False führt zu Kollisionen zwischen Dateien mit demselben Grundnamen.
Es gibt auch eine Einstellung, die für Tools und Frameworks wichtig ist, die Anmerkungen verwenden. Wenn Sie Doctrine, Zend Framework 2 oder PHP -Einheit verwenden, sollten Sie die Einstellungen von Opcache.load_Coments und Opcache.Save_ComMents auf true festlegen. Im Ergebnis werden die Dokumentationskommentare Ihrer Dateien auch in den von OPCACHE generierten vorkompilierten Code aufgenommen. Mit dieser Einstellung können Sie ohne Störungen mit Anmerkungen arbeiten.
Wenn Ihr Projekt auf einem bestimmten Framework oder einer Webanwendung basiert, ist es immer eine gute Idee, die Dokumentation auf Richtlinien bezüglich der Opcache -Konfiguration zu überprüfen. Zum Beispiel gibt es hier eine Beispielkonfiguration für Moodle.
Wenn Ihr Projekt Dateien enthält, die häufiger als die anderen geändert werden, können Sie sie vom Caching ausschließen. Es kann besonders praktisch sein, wenn es sich um PHP -Dateien handelt, die Konfigurationsanweisungen für Ihre Website enthalten. Wenn Sie sie davon abhalten, zwischengespeichert zu werden, können Sie sicher sein, dass jede Änderung in einer solchen Datei in Ihrer Bewerbung sofort sichtbar ist.
MitOPCACHE können Sie eine Blacklist -Datei angeben, die alle Pfade enthält, die nicht von der Caching -Engine verarbeitet werden. Nachdem Sie die Anweisung opcache.blacklist_filename festgelegt haben, geben Sie einfach die richtige Dateiliste in den angegebenen Pfad ein. Auf der Seite "Dokumentation" enthält einige Beispiele zum Ausschließen bestimmter Dateien aus Cache.
Wenn Ihr Server mehrere Apps ausführt, sind Sie möglicherweise bereit, Opcache nur in einigen von ihnen zu verwenden. Entwicklungs- und Teststellen sind Beispiele für solche Umgebungen, in denen das Aktivieren von Bytecode -Caching nicht vorzuziehen ist und mehr Schaden als Nutzen verursachen kann.
Glücklicherweise ist es möglich, Opcache in einem Projekt aktiviert und in einem anderen auf einem einzigen Server deaktiviert zu werden. Zuerst müssen Sie den Opcache auf globaler Ebene aktivieren, indem Sie die Opcache.Enable -Anweisung in Ihre Php.ini -Datei festlegen. Wenn Sie dann in einem Ihrer Projekte kein Bytecode -Caching verwenden möchten, deaktivieren Sie es einfach, indem Sie dieselbe Richtlinie mit der Funktion ini_set () auf die gleiche Richtlinie festlegen. Zuerst müssen Sie das globale Caching aktivieren und können es dann in einigen Projekten „lokal“ deaktivieren. Sie können das Gegenteil nicht tun - das Caching mit Ini_Set () zu aktivieren ist nicht zulässig.
Einstellen von Opcache.einbar in eine Top -Datei in Ihrem Projekt deaktiviert das Caching, während es an anderer Stelle eingeschaltet wird.
Ich hoffe, dass dieser Satz gemeinsamer Fragen und Antworten Ihnen einige praktische Informationen zur Verwendung von Opcache in einer PHP -Anwendung gegeben hat. Wenn Sie andere Fragen oder Kommentare zum Thema haben, können Sie sie unten veröffentlichen. Sie können mich auch über Google Plus kontaktieren.
Wie unterscheidet sich Opcache von anderen Caching -Mechanismen? Caching -Mechanismen, die die Ausgabe von PHP -Skripten speichern, speichert den vorkompilierten Bytecode von PHP -Skripten. Dies bedeutet, dass der PHP -Code nicht jedes Mal neu kompiliert werden muss, wenn eine Anfrage gestellt wird, was eine Menge Verarbeitungszeit und Ressourcen spart. Dies macht Opcache eine effizientere und effektivere Lösung zur Verbesserung der PHP -Leistung.
Kann ich Opcache mit anderen Caching -Mechanismen verwenden? Redis. Während Opcache die PHP -Leistung verbessert, indem sie den vorkompilierten Bytecode zwischengespeichert, können andere Caching -Mechanismen die Leistung weiter verbessern, indem die Datenbankabfragen oder die Ausgabe von PHP -Skripten zwischengeeignet sind.
Das obige ist der detaillierte Inhalt vonOpcache verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!