JIT 编译优化措施

1. 方法内联

        线程执行会创建java虚拟机栈,调用方法的是以栈帧的形式进行入栈和出栈的,如果被调用方法方法体很简单,jvm编译器会做方法内联的优化将被调用方法植入到调用方法,减少出栈入栈提高性能。

ReservedCodeCacheSize

2.  锁消除

        当我们使用线程安全的类的时候,如果jvm判断出这个线程安全的类创建的对象如果没有跳出当前方法,就不存在并发安全的问题,jvm就会进行 锁的消除,jdk 8中 锁消除 开关是默认打开的

 3. 标量替换

        前提是开启了逃逸分析,对于方法中没有逃出当前方法的简单对象,jvm 编译器会将对象打散后在即替换,然后在栈上分配

 

热点探测:JIT just in time 

       缓存编译的热点代码,来代替解释执行,热点探测技术: 1. 方法计数器   2.  回边计数器 

       方法计数器 见名之意就是对方法的调用次数计数,当方法调用次数达到阈值时,进行热点代码的编译进行缓存。默认的阈值 为 10000 

       回边计数器  对方法体内部的循环代码的执行次数的 统计。默认的阈值 10700

你可能感兴趣的:(java,java)