Il Just-In-Time (JIT) compiler è una componente della Java Virtual Machine (JVM) che consente di migliorare le prestazioni dell’applicazione Java compilando il codice Java in istruzioni native mentre l’applicazione viene eseguita.
Il JIT compiler si comporta in modo differente a seconda dei contesti di esecuzione, ecco le principali caratteristiche che lo contraddistinguono:
-
Compilazione dinamica: il JIT compiler compila il codice Java in istruzioni native durante l’esecuzione dell’applicazione, invece di compilarlo prima dell’esecuzione come fa un compilatore tradizionale.
-
Ottimizzatore delle prestazioni: il JIT compiler include algoritmi di ottimizzazione per migliorare le prestazioni del codice compilato, elimina ad esempio il codice inutile e utilizza istruzioni native specifiche della piattaforma.
-
Profilazione del codice: il JIT compiler utilizza la profilazione per identificare le porzioni di codice (trunk) che vengono eseguite più frequentemente e le ottimizza in maniera automatica per migliorarne le prestazioni.
-
Compilazione incrementale: il JIT compiler effettua la compilazione solo le porzioni di codice che vengono eseguite spesso, in modo da limitare l’impatto sulle prestazioni durante l’esecuzione dell’applicazione.
-
Compilazione condizionale: il JIT compiler può decidere di non compilare una porzione di codice se le prestazioni sono migliori con l’interpretazione, quindi passando normalmente attraverso la JVM.