What does Just-In-Time (JIT) mean?
Just-in-time (JIT) is a term used to describe an action such as compilation or object activation only at the time when it becomes necessary.This term is associated mostly with software compilation. JIT compilation is mainly designed for high-speed code execution and support for multiple platforms.
JIT compilation originated from the need for a compiler to assume responsibilities in addition to just conversion to object code (machine instructions) from a high-level language. JIT compilers facilitate portability to multiple operating systems and hardware platforms. Languages such as Smalltalk, Pascal Java and C# support JIT compilation.
Techopedia explains Just-In-Time (JIT)
There are three types of JIT compilers:
- Pre-JIT: Compiles the entire source code during compilation and is used at the time of deployment.
- Econo-JIT:Compiles methods that are called during run time.
- Normal-JIT: Compiles only the methods called during run time (at the instant of their first call) and stores the compiled code in cache to be used in subsequent calls.
The disadvantages to using JIT compilation are additional startup time during the first call, increased use of cache memory and the inability to share code across multiple processes.
Ahead-of-time (AOT) compilation can overcome the issues faced with JIT compilation. It precompiles the entire Microsoft intermediate language image into machine code without the need for runtime compilation and saves the compiled code to a file on a disk. The compiled code is only used when there is a need for faster startup of the application.
Adaptive optimization is an alternative to JIT compilation that is used in Java.