Thursday 20 March 2014

JIT Compiler

JIT stands for Just-in-Time. It is part of Java Run time Environment (JRE). It optimizes the performance of Java Application, by compiling byte codes to native machine code at run time.

JIT compiler enabled by default. Whenever a particular method is called, the JIT compiler compiles the byte code related to that method to native machine code.

 
JIT compilation threshold
Usually not every method code is compiled by JIT. JVM increases method call count for each method whenever a particular method is called. If the call count reaches to particular threshold, then JIT compiles and apply optimization's to the code. Until method count reaches to threshold, JVM interprets the byte code of the method whenever it is called.

What happens after JIT performs Compilation
Once JIT performs compilation, then method call count is reset to zero. Any calls to the method uses the compiled code(It won't interpret again and again) and method call count starts incrementing on sub sequent calls. Once method count reaches to thresh hold again, the code is recompiled by JIT and applies some more optimizations. This process repeats until the maximum optimization level is reached.

To do optimization JIT uses various techniques like Register usage optimization, Loop reduction and inversion, switch Analysis, GC and memory allocation optimizations etc.,

No comments:

Post a Comment