小师妹,F师兄,JIT就是Just In Time compilers。能不能再总结一下JIT到底是做什么的呢?
当然没问题,JIT主要有两个作用,第一个作用大家应该已经知道了,就是在运行时将byte code编译成为机器码,提高程序的执行速度。
第二个作用就是在运行时对代码进行优化,同样的也对性能进行提升。
JIT中有两种编译器,C1代表的是Client Compiler,C2代表的是Server Compiler。
其中C1只是简单的编译,而C2在收集到更多信息之后,会进行更加深入的编译和优化。
常见的优化手段有:Loop unrolling, Inlining, Dead Code Elimination,Escape analysis, Intrinsics, Branch prediction等。
JDK8中会默认启动分层编译。你也可以使用
来手动启动它。