Product Design, Manufacturing & Innovation Resources
Heim » Just-In-Time (JIT)-Kompilierung

Just-In-Time (JIT)-Kompilierung

1990
Softwareentwickler, der die JIT-Kompilierung in einem modernen Arbeitsbereich optimiert.

(Abbildung dient nur zur Veranschaulichung)

Just-in-time Die Just-in-Time-Kompilierung (JIT) ist ein hybrider Ansatz, der Merkmale von Kompilierung und Interpretation kombiniert. Anstatt Code im Voraus (Ahead-of-Time, AOT) zu kompilieren, … Compiler Die Übersetzung von Bytecode in nativen Maschinencode erfolgt zur Laufzeit, kurz bevor dieser ausgeführt wird. Dies ermöglicht dynamische Optimierungen basierend auf dem tatsächlichen Laufzeitverhalten und verbessert häufig die Leistung gegenüber der reinen Interpretation.

Ein JIT-Compiler arbeitet in einer Laufzeitumgebung oder virtuellen Maschine. Beim ersten Aufruf einer Methode wird ihr plattformunabhängiger Bytecode in nativen Maschinencode kompiliert und zwischengespeichert. Nachfolgende Aufrufe dieser Methode führen den schnellen, nativen Code direkt aus und umgehen den Interpretationsaufwand. Dies führt zwar zu einer kleinen Start- oder Aufwärmverzögerung, kann aber langfristig zu erheblichen Leistungssteigerungen bei Anwendungen mit langer Laufzeit führen.

Der entscheidende Vorteil der JIT-Kompilierung liegt in der Möglichkeit der profilgesteuerten oder adaptiven Optimierung. Die Laufzeitumgebung überwacht die Codeausführung und erfasst Statistiken darüber, welche Codepfade häufig ausgeführt werden und welche Datentypen verarbeitet werden. Diese Laufzeitinformationen, die einem statischen AOT-Compiler nicht zur Verfügung stehen, ermöglichen dem JIT fundiertere Optimierungsentscheidungen. Beispielsweise kann er virtuelle Methodenaufrufe spekulativ inlinieren, wenn er feststellt, dass ein bestimmter konkreter Typ stets verwendet wird. Sollte sich diese Annahme später als falsch erweisen, kann der JIT eine „Deoptimierung“ durchführen und auf einen sichereren Ausführungspfad zurückgreifen. Diese dynamische Natur macht die JIT-Kompilierung besonders effektiv für objektorientierte und dynamische Sprachen.

UNESCO Nomenclature: 1203
- Computerwissenschaften

Typ

Software/Algorithmus

Störung

Wesentliche

Verwendung

Weitverbreitete Verwendung

Vorläufer

  • Ahead-of-Time-Compiler (AOT)
  • Dolmetscher
  • P-Code und andere Bytecode-Systeme
  • Forschung in dynamischen Sprachen wie Smalltalk und Lisp
  • Konzepte virtueller Maschinen

Anwendungen

  • Java Virtual Machine (JVM)
  • .net Common Language Runtime (CLR)
  • JavaScript-Engines in Webbrowsern (z. B. v8)
  • pypy, eine leistungsstarke Python-Implementierung
  • Engines zur Ausführung von Datenbankabfragen

Patente:

NA

Potenzielle Innovationsideen

Aufgrund des hohen Datenverkehrs durch Web-Scraping-Bots, der derzeit mehr als 40.000 Anfragen pro Tag umfasst, ist dieser Inhalt ausschließlich Community-Mitgliedern vorbehalten.
> Anmelden < oder > Registrieren < (100% kostenlos) Zugriff darauf sowie auf alle anderen eingeschränkten Inhalte und Tools.

Verwandt mit: JIT, Just-in-Time-Kompilierung, dynamische Kompilierung, virtuelle Maschine, JVM, CLR, V8, Bytecode, adaptive Optimierung, Laufzeitumgebung.

Historischer Kontext

Just-In-Time (JIT)-Kompilierung

1980
1986-01-01
1990
1990
1993
1998
2010
1980
1982-07-01
1988-06-01
1990
1993
1997-04-23
2001
2010

(wenn das Datum unbekannt oder nicht relevant ist, z. B. „Strömungsmechanik“, wird eine gerundete Schätzung seines bemerkenswerten Auftretens bereitgestellt)

Verwandte Erfindungen, Innovationen und technische Prinzipien

Bilder in voller Größe und Downloads sind nur für registrierte Mitglieder 100% kostenlos verfügbar.

> Login <