Dieser Artikel führt Sie in die einfache Verwendung des Opcode-Cachings in PHP ein und stellt ihn Ihnen als Referenz zur Verfügung
1 Was ist Opcode?
Nachdem der Interpreter den Code analysiert hat, wird er generiert Zwischencode, der direkt ausgeführt werden kann, wird Opcode genannt, Opcode
2. Der Unterschied zwischen einem Interpreter und einem Compiler
Der Interpreter führt den Zwischencode direkt aus, nachdem er ihn generiert hat, und die Laufzeit Die Kontrolle liegt immer noch in der Interpretation.
Der Compiler generiert den Zwischencode und optimiert den Code weiter, um ein Zielprogramm zu generieren, das direkt ausgeführt werden kann, aber nicht ausgeführt wird. Seine Kontrolle liegt beim Zielprogramm und hat nichts mit dem Compiler zu tun.
3.php ist eine interpretierte Sprache, deren Prinzip der Kompilierung ähnelt, einschließlich lexikalischer Analyse, Syntaxanalyse, semantischer Analyse ..., die Kern-Engine des PHP-Interpreters ist die Zend-Engine
4.php So zeigen Sie den Opcode eines Codeabschnitts an
Installieren Sie die Parsekit-Erweiterung von PHP, und Sie können den Opcode von PHP über die erweiterte API anzeigen, z. B. parsekit_compile_string()
php -r "var_dump( parsekit_compile_string('print 1+1;'));"
5. Der generierte Opcode
muss zunächst einer lexikalischen Analyse unterzogen werden kann als eine Reihe von Wortkombinationen betrachtet werden.
Zum Beispiel schauen wir uns zend/zend_lingual_scanner.l im PHP-Quellpaket an Suchen Sie die entsprechende Markierung zum Drucken. T_PRINT
Nachdem wir die Markierung gefunden haben, ist der nächste Schritt die Syntaxanalyse in zend/zend_lingual_parser.y. Wir können die Funktion finden, die T_PRINT
entspricht, und dann den Funktionsimplementierungscode in zend/ finden. zend_compile.c, diese Funktion implementiert die Konvertierung von Opcode. Alle Opcodes werden durch Benutzer-Ganzzahlen dargestellt.
6. Opcode-Caching aktivieren
Das Generieren von Opcode erfordert einen erheblichen Systemaufwand, sodass ein Opcode generiert werden muss Caching, um eine wiederholte Kompilierung zu vermeiden.
Der Opcode-Cache von PHP umfasst APC, eAccelerator und XCache, die alle Opcode im gemeinsamen Speicher ablegen.
Nehmen Sie APC als Beispiel: Setzen Sie
apc.cache_by_default = on
in php.ini über
Sie können den Cache-Status überprüfen,
Der Opcode-Cache läuft ab
Der Opcode-Cache läuft ab läuft ab, Um ein neues zu generieren, können Sie natürlich auch den Ablaufprüfmechanismus überspringen und
apc.stat=off
in php.ini so einstellen, dass der Programmcode muss Um wirksam zu werden, müssen Sie den Server neu starten.
8. Für die Skriptverfolgung und -analyse können Sie xdebug verwenden, um einen Leistungs-Tracker zu implementieren, den Ausführungsengpass des Programms zu finden und das Programm zu optimieren.
xdebug.profiler_output_dir = /tmp/xdebug
xdebug.profiler_output_name = cachegrind.out.%p
xdebugs Funktionstrace:
xdebug.trace_output_dir = /tmp/xdebug
xdebug.trace_output_name = Trace.%c
Sie können wincachegrind verwenden, um die xdebug-Berichtsdatei unter dem Fenster anzuzeigen.
Verwandte Empfehlungen:
Einführung in die Opcode-Cache-Nutzung in PHP
Das obige ist der detaillierte Inhalt vonEinfache Verwendung des Opcode-Cache in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!