解释执行
通过解释器读取字节码,一次一条地将其转换成机器码。不需要等待整个程序编译完成,可以迅速开始执行
优点:立即开始,无需等待。<br>缺点:效率较低,因为每次读都要重新查找和翻译<br>
编译执行
JIT编译执行会在程序运行的某个时刻,针对热点代码进行编译,从而提高程序的执行效率。
优点:长期来看,执行效率高。<br>缺点:需要一定的时间来“编译”代码,所以启动速度可能会慢一些<br>
热点探测
方法调用计数器
回边计数器:统计方法中循环体代码执行的次数
编译优化技术
方法内联:把目标方法的代码复制到发起调用的方法之中,避免发生真实的方法调用。这样就可以减少频繁创建栈帧的性能开销
逃逸分析:当一个对象在方法里面被定义后,它可能被外部方法所引用
标量替换
栈上分配
锁消除