JIT kompilátor sleduje, které části kódu se spouštějí nejčastěji (tzv. „hot spots“). Tyto části pak přeloží přímo do instrukcí procesoru, aby se při příštím volání nemusely znovu interpretovat.
Proces typicky probíhá v těchto krocích:
1. **Zdrojový kód:** Programátor napíše kód (např. v Javě nebo C#). 2. **Bytecode:** Kód se nejdříve přeloží do univerzálního mezikódu (Bytecode), který je přenositelný mezi systémy. 3. **Interpretace:** Při spuštění začne interpret číst bytecode a vykonávat ho. 4. **Profilování:** JIT kompilátor sleduje, které funkce se volají opakovaně (např. v [[it_encyklopedie:iterace|cyklu]]). 5. **Kompilace:** Tyto "horké" části JIT bleskově přeloží do nativního strojového kódu daného procesoru a uloží je do mezipaměti. 6. **Zrychlení:** Při dalším průchodu se už nepoužije interpret, ale spustí se přímo zkompilovaný kód v plné rychlosti.
| Metoda | Rychlost startu | Rychlost běhu | Příklad |
|---|---|---|---|
| Interpretace | Okamžitá | Pomalá | Python, Bash |
| AOT Kompilace | Pomalá (čeká se na build) | Maximální | C++, Rust, Go |
| JIT Kompilace | Rychlá | Téměř maximální | Java, C#, JS (V8) |
Zajímavost: Existuje i koncept Tracing JIT, který nekompiluje celé funkce, ale sleduje konkrétní cestu (trasu) skrz kód (včetně všech větvení) a tu pak optimalizuje jako jeden lineární kus kódu.