JIT (ang. just-in-time compilation) – metoda wykonywania programów komputerowych polegająca na ich kompilacji do kodu maszynowego bezpośrednio przed wykonaniem danego fragmentu kodu.
Cała procedura wygląda następująco:
- kod źródłowy jest kompilowany do kodu pośredniego (bajtowego),
- maszyna wirtualna przeprowadza kompilację kodu pośredniego do kodu maszynowego.
Kompilacja może odbywać się w momencie pierwszego dostępu do kodu znajdującego się w pliku z programem lub pierwszego wywołania danej funkcji (stąd nazwa just-in-time).
JIT jest bardzo obiecującą techniką uruchamiania programów niezależnych od architektury systemu komputerowego. Zaawansowane systemy JIT potrafią wykonywać programy szybciej niż interpretery, unikając jednocześnie komplikacji związanych z realizacją pełnego cyklu kompilacji, linkowania itd.[potrzebny przypis]
Główną konkurencją dla techniki JIT jest popularna na systemach uniksowych metoda rozpowszechniania źródeł, które dopiero na docelowej maszynie zostają skompilowane. W metodzie rozpowszechniania źródeł, kompilacja pomimo tego, że trwa stosunkowo długo i jest skomplikowanym, a niekiedy zawodnym procesem, jest wykonywana tylko raz. W efekcie tego, że program jest skompilowany do poziomu kodu maszynowego, uzyskuje się z reguły większą wydajność działania programu wynikowego.[potrzebny przypis]
JIT jest używany głównie przez maszyny wirtualne Javy oraz środowisko uruchomieniowe .NET CLR.