Was ist der Unterschied zwischen Interpreter und JIT-Compiler?

Das Hauptunterschied zwischen Interpreter und JIT-Compiler ist das der Interpreter ist eine Software, die den Quellcode Zeile für Zeile in nativen Maschinencode konvertiert, während der JIT-Compiler eine Komponente in JVM ist, die die Leistung von Java-Programmen verbessert, indem Bytecodes zur Laufzeit in native Maschinencodes kompiliert werden.

Interpreter ist ein Programm, das die vom Programmierer geschriebenen Anweisungen oder Skripts in entsprechenden Maschinencode übersetzt, der zu einer bestimmten Hardwareplattform einer CPU passt. Auf der anderen Seite ist JIT ein Compiler, der zur Laufzeit Bytecodes in Maschinencodes übersetzt. Es erfordert CPU-Zeit und Speicher.

Wichtige Bereiche

1. Was ist Dolmetscher?
     - Definition, Funktionalität
2. Was ist JIT-Compiler?
     - Definition, Funktionalität
3. Was ist der Unterschied zwischen Interpreter und JIT-Compiler?
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Bytecode, Interpreter, JIT-Compiler, JVM, Maschinencode

Was ist Dolmetscher?

Programmierer schreiben Computerprogramme mit einer höheren Programmiersprache. Er kann die Syntax dieser Programme leicht lesen und verstehen. Die CPU versteht diese Programme jedoch nicht zur Ausführung der im Programm definierten Task. Daher ist es notwendig, den übergeordneten Quellcode in maschinenverständlichen Maschinencode umzuwandeln.

Abbildung 1: Python-Interpreter

Interpreter ist eine Software, die die oben genannte Konvertierung durchführt. Er konvertiert den Quellcode des Programms zeilenweise in Maschinencode. Bei der Prüfung von Zeilen zu Zeilen ist die Scanzeit geringer. Die Gesamtausführungszeit des Programms ist jedoch höher. Daher sind die Interpreter-basierten Sprachen wie Python, Perl, Ruby und PHP langsamere Sprachen.

Was ist JIT-Compiler?

Der Javac-Compiler konvertiert den Java-Quellcode in einen Bytecode. Die Java Virtual Machine (JVM) kann diesen Bytecode ausführen. Dieser Bytecode wird in den entsprechenden Maschinencode konvertiert, damit die CPU die im Programm definierte Task ausführen kann. JIT steht für Just in Time-Compiler. Es ist ein integraler Bestandteil der JVM. Darüber hinaus unterstützt es die JVM, Java-Bytecode schneller auszuführen, und verbessert die Leistung von Java-Programmen.

Abbildung 2: Java-Bytecode

Jeder Computer, auf dem JVM installiert ist, kann den Bytecode ausführen. Mit anderen Worten, jede Plattform mit JVM kann den Bytecode installieren. Dies macht Java plattformunabhängige Programmiersprache.

Unterschied zwischen Interpreter und JIT-Compiler

Definition

Interpreter ist eine Software, die die Anweisungen, die in einer höheren Programmiersprache oder Skriptsprache geschrieben sind, in ein Maschinensprachenprogramm umwandelt. JIT-Compiler ist eine Komponente der Java-Laufzeitumgebung (JVM ist Teil von JRE), die die Leistung von Java-Anwendungen zur Laufzeit verbessert. Diese Definitionen erklären den Hauptunterschied zwischen Interpreter und JIT-Compiler.

Funktionalität

Der Interpreter konvertiert den Quellcode Zeile für Zeile in Maschinencode. Der JIT-Compiler hilft, Bytecode schneller auszuführen, indem er den Bytecode zur Laufzeit in Maschinencode kompiliert.

Ausführungsgeschwindigkeit

Die Ausführungsgeschwindigkeit eines Interpreters ist langsamer als ein JIT-Compiler. Dies ist auch ein Unterschied zwischen Interpreter und JIT-Compiler.

Assoziierte Sprachen

Ein weiterer Unterschied zwischen Interpreter und JIT-Compiler besteht darin, dass PHP, Perl, Python, Ruby einige Interpreter-basierte Sprachen sind, während Java JIT-Compiler verwendet.

Fazit

Der grundlegende Unterschied zwischen dem Interpreter und dem JIT-Compiler besteht darin, dass Interpreter eine Software ist, die den Quellcode Zeile für Zeile in nativen Maschinencode konvertiert, während der JIT-Compiler eine Komponente in JVM ist, die die Leistung von Java-Programmen verbessert, indem Bytecodes bei der Ausführung in native Maschinencodes kompiliert werden Zeit.

Referenz:

1. „Dolmetscher (Computing)“. Wikipedia, Wikimedia Foundation, 28. September 2018, hier verfügbar.
2. „Überblick über den JIT-Compiler“, IBM Knowledge Center, hier verfügbar.
3. Aboullaite, Mohammed. „Verständnis des JIT-Compilers (Just-in-Time-Compiler).“ Aboullaite Med, 31. August 2017, hier verfügbar.

Bildhöflichkeit:

1. „Aufforderung für Windows 7 Python Shell Interpreter 11. Mai 2016“ Von Annakoppad - Eigene Arbeit (CC BY-SA 4.0) über Commons Wikimedia
2. "Java-Programm-Ausführung" Von Loboh - Eigene Arbeit (CC BY-SA 3.0) über Commons Wikimedia