Compiler
Welche Eigenschaft einer Laufzeitumgebung mit JIT-Kompilierung ist richtig?
- AVor der Ausführung wird alles in Maschinencode übersetzt und dann verteilt
- BWährend der Ausführung häufig genutzte Teile werden zu Maschinencode, und auch Laufzeitinformationen können genutzt werden
- CEs wird überhaupt kein Maschinencode verwendet, und Bytecode wird dauerhaft Befehl für Befehl interpretiert
Antwort und Erläuterung anzeigen
Antwort: B. Während der Ausführung häufig genutzte Teile werden zu Maschinencode, und auch Laufzeitinformationen können genutzt werden
Bei der JIT-Kompilierung wird zunächst Bytecode interpretiert; werden häufig ausgeführte Teile (Hotspots) erkannt, werden sie zur Laufzeit zu Maschinencode kompiliert. Mithilfe von Laufzeitinformationen wie den tatsächlich durchlaufenen Verzweigungen und übergebenen Typen sind weitreichende Optimierungen möglich, die bei vorab durchgeführter Kompilierung schwierig sind. Es gibt auch einen Mechanismus zur Rückkehr in die Interpretation, wenn die Annahmen nicht zutreffen. Die vollständige Vorabübersetzung ist die AOT-Kompilierung (Ahead-of-Time), die ausschließliche Interpretation ein reiner Interpreter.