Dieser Artikel stellt hauptsächlich die einfache Verwendung des Opcode-Cache in PHP vor und analysiert das Konzept, das Prinzip, das einfache Öffnen und die Verwendung von Opcode in Form von Beispielen. Ich hoffe, dass er allen helfen kann .
Das Beispiel in diesem Artikel beschreibt die einfache Verwendung des Opcode-Cache in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Was ist Opcode?
Nachdem der Interpreter den Code analysiert hat, generiert er einen Zwischencode, der direkt ausgeführt werden kann wird als Opcode bezeichnet, Opcode
2. Der Unterschied zwischen einem Interpreter und einem Compiler
Der Interpreter generiert den Zwischencode und führt den Zwischencode direkt aus Hände des Dolmetschers.
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. Ihr Prinzip ähnelt in gewisser Weise der Kompilierung, 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 Opcode wird generiert
Er muss zunächst einer lexikalischen Analyse unterzogen werden. Der Skriptcode kann als eine Reihe von Wörtern betrachtet werden Kombinationen. Der Interpreter muss diese Wörter klassifizieren und
zum Beispiel drucken, wir schauen uns zend/zend_lingual_scanner.l im PHP-Quellpaket an zu drucken. Nachdem T_PRINT
die Markierung gefunden hat, ist der nächste Schritt die Syntaxanalyse. In zend/zend_lingual_parser.y können wir die Funktion finden, die T_PRINT
entspricht, und dann in zend /zend_compile.c Finden Sie den Implementierungscode dieser Funktion in . 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
<?php print_r(apc_cache_info());?>
Sie können den Cache-Status überprüfen,
Ablauf des Opcode-Cache
Wenn der Opcode-Cache abläuft, muss er natürlich auch erneut generiert werden Überspringen Sie die Ablaufprüfung. Stellen Sie
apc.stat=off
in php.ini ein, damit die Änderung des Programmcodes durch einen Neustart des Servers wirksam wird.
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
xdebug-Funktionsverfolgung:
xdebug.trace_output_dir = /tmp/xdebug xdebug.trace_output_name = trace.%c
Sie können wincachegrind verwenden, um den xdebug-Bericht unten anzuzeigen Fensterdokument.
Verwandte Empfehlungen:
Umfassendes Verständnis der Opcode-Optimierung in PHP (Bilder und Texte)
Opcode-Cache macht PHP noch besser leistungsstark
Opcodes (Operationscodes) zum Verständnis der PHP-Prinzipien_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung des Opcode-Cache in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!