Uživatelské nástroje

Nástroje pro tento web


it_encyklopedie:jit

JIT kompilátor (Just-In-Time Compiler)

JIT kompilátor (z anglického Just-In-Time – *„tak akorát včas“*) je součást běhového prostředí (runtime) programovacího jazyka, která provádí překlad zdrojového kódu (nebo mezikódu) do strojového kódu procesoru až během samotného běhu programu (runtime), a nikoliv předem před spuštěním.


Jak JIT kompilátor funguje?

Tradiční programovací jazyky se dělí na kompilované (přeložené do strojového kódu předem, např. C++) a interpretované (překládané a vykonávané řádek po řádku za běhu, např. starší verze Pythonu). JIT kombinuje výhody obou přístupů:

Fáze zpracování Popis
1. Prvotní překlad (Bytecode) Zdrojový kód se nejprve přeloží do univerzálního mezikódu (tzv. bytekódu), což zajišťuje přenositelnost napříč platformami.
2. Běh a sledování (Profiling) Program se spustí v interpretru. JIT přitom sleduje, které části kódu se spouštějí nejčastěji (tzv. *hotspots*).
3. JIT kompilace za běhu Často používané části kódu (funkce, smyčky) JIT za chodu zkompiluje přímo do nativního strojového kódu pro daný procesor.
4. Spuštění optimalizovaného kódu Další průchody tímto kódem už běží přímo na hardwaru s maximální rychlostí.

Klíčové výhody JIT kompilace

* Vysoký výkon: Kombinuje flexibilitu interpretovaných jazyků s rychlostí nativního strojového kódu. * Běhové optimalizace (Adaptive Optimization): JIT dokáže optimalizovat kód na základě reálných dat za běhu programu (např. podle toho, jaké datové typy se v aplikaci skutečně používají). * Přenositelnost (Platform Independence): Jeden zkompilovaný bytekód (např. Java Bytecode) může běžet na Windows, Linuxu i macOS, protože JIT si jej na každém zařízení přeloží pro konkrétní procesor.


Kde se JIT kompilátory využívají?

JIT je dnes standardní součástí celé řady moderních běhových prostředí:

Technologie / Jazyk Popis / Název JIT motoru
Java (JVM) Java Virtual Machine využívá JIT kompilaci k masivnímu zrychlení běhu aplikací.
JavaScript (V8, SpiderMonkey) Moderní webové prohlížeče (Chrome, Firefox) využívají JIT k tomu, aby dokázaly plynule spouštět složité webové aplikace a hry.
C# (.NET / CLR) Common Language Runtime překládá IL (Intermediate Language) kód do strojového kódu pomocí JIT (nebo nověji AOT – Ahead-Of-Time).
Python (PyPy) Alternativní implementace Pythonu s JIT kompilátorem, která výrazně zrychluje numerické výpočty.

Tip: Zatímco JIT kompiluje kód během běhu, opačným přístupem je AOT kompilace (Ahead-Of-Time), kdy se veškerý kód přeloží do strojového kódu ještě před spuštěním aplikace, což přináší okamžitý start bez počáteční prodlevy na zahřátí JIT motoru.
it_encyklopedie/jit.txt · Poslední úprava: autor: admin