Heim > Artikel > Backend-Entwicklung > JIT von PHP 8 verstehen
【Verwandte Empfehlung: JIT von PHP 8 verstehen8】
Der JIT-Compiler (Just In Time) von JIT von PHP 8 verstehen 8 wird als Erweiterung in JIT von PHP 8 verstehen integriert. Die Opcache-Erweiterung wird zum Kompilieren bestimmter Dateien verwendet Zur Laufzeit werden Opcodes direkt in Anweisungen von der CPU übersetzt.
Das bedeutet, dass Zend VM nach der Verwendung von JIT bestimmte Opcodes nicht interpretieren muss und diese Anweisungen direkt als Anweisungen auf CPU-Ebene ausgeführt werden.
Die Auswirkungen des JIT von PHP 8 verstehen 8 Just In Time (JIT)-Compilers sind unbestreitbar. Bisher habe ich jedoch festgestellt, dass sehr wenig darüber bekannt ist, was JIT tun soll.
Nach langem Recherchieren und Aufgeben habe ich beschlossen, den JIT von PHP 8 verstehen-Quellcode selbst zu überprüfen. Ich kombiniere einige meiner Kenntnisse der C-Sprache und alle verstreuten Informationen, die ich bisher gesammelt habe, und komme zu diesem Artikel, der Ihnen hoffentlich dabei helfen wird, JIT von PHP 8 verstehens JIT besser zu verstehen.
Um es einfach auszudrücken: Wenn das JIT wie erwartet funktioniert, wird Ihr Code nicht über die Zend-VM ausgeführt, sondern direkt als Satz von Anweisungen auf CPU-Ebene.
Das ist die ganze Idee.
Aber um es besser zu verstehen, müssen wir uns überlegen, wie JIT von PHP 8 verstehen intern funktioniert. Nicht sehr kompliziert, bedarf aber einer Einführung.
Ich habe einen Blogbeitrag geschrieben, der einen groben Überblick über die Funktionsweise von JIT von PHP 8 verstehen gibt. Wenn Sie der Meinung sind, dass dieser Beitrag zu viel ist, schauen Sie sich einfach einen anderen an und kommen Sie später noch einmal vorbei. Die Dinge werden verständlicher.
Wie wir alle wissen, ist JIT von PHP 8 verstehen eine interpretierte Sprache, aber was bedeutet dieser Satz selbst?
Jedes Mal, wenn Sie JIT von PHP 8 verstehen-Code (Befehlszeilenskript oder WEB-Anwendung) ausführen, muss dieser den JIT von PHP 8 verstehen-Interpreter durchlaufen. Am häufigsten werden die JIT von PHP 8 verstehen-FPM- und CLI-Interpreter verwendet.
Die Aufgabe des Interpreters ist einfach: JIT von PHP 8 verstehen-Code empfangen, interpretieren und das Ergebnis zurückgeben.
Allgemein interpretierte Sprachen folgen diesem Prozess. Bei einigen Sprachen entfallen möglicherweise einige Schritte, die Grundidee ist jedoch dieselbe. In JIT von PHP 8 verstehen ist der Prozess wie folgt:
liest den JIT von PHP 8 verstehen-Code und interpretiert ihn als eine Reihe von Schlüsselwörtern, sogenannte Tokens. Durch diesen Vorgang weiß der Interpreter, welcher Code in jedem Programm geschrieben wurde. Dieser Schritt wird Lexing oder Tokenisieren genannt.
Nachdem der JIT von PHP 8 verstehen-Interpreter die Token-Sammlung erhalten hat, versucht er, sie zu analysieren. Ein abstrakter Syntaxbaum (AST) wird durch einen Prozess namens „Parsing“ generiert. Hier ist AST eine Reihe von Knoten, die darstellen, welche Operationen ausgeführt werden sollen. Beispielsweise bedeutet „echo 1 + 1“ tatsächlich „das Ergebnis von 1 + 1 drucken“ oder genauer gesagt „eine Operation drucken, diese Operation ist 1 + 1“.
Mit Opcodes kommt jetzt der spaßige Teil:
AusführenDieses Bild kann es für Sie klarer machen:
Wie Sie sehen können. Hier ist eine Frage: Auch wenn sich der JIT von PHP 8 verstehen-Code nicht geändert hat, wird dieser Prozess bei jeder Ausführung befolgt?
Lassen Sie uns einen Blick zurück auf Opcodes werfen. Das ist richtig! Aus diesem Grund gibt es die
Opcache-Erweiterung.
Opcache-ErweiterungDie Opcache-Erweiterung wird mit JIT von PHP 8 verstehen geliefert und es besteht normalerweise keine Notwendigkeit, sie zu deaktivieren. Wenn Sie JIT von PHP 8 verstehen verwenden, ist es am besten, Opcache zu aktivieren.
Dies ist ein Prozessdiagramm, das die Opcache-Erweiterung enthält:
Erklärungsprozess für JIT von PHP 8 verstehen mit Opcache. Wenn die Datei bereits analysiert wurde, ruft JIT von PHP 8 verstehen zwischengespeicherte Opcodes dafür ab, anstatt sie erneut zu analysieren.Die Schritte Lexing/Tokenisieren, Parsen und Kompilieren werden perfekt übersprungen
Verwandte Lernempfehlungen:JIT von PHP 8 verstehen-Programmierung
(Video)Das obige ist der detaillierte Inhalt vonJIT von PHP 8 verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!