JIT及时编译几种常见的技术

发布时间 2023-04-10 21:27:55作者: Katsu
技术 说明
方法内联

1.出去方法调用的成本(建立栈帧、出入栈等)

2.是其他优化措施的前提

公共子表达式消除 避免相同表达式的重复计算
数组边界检查消除 去除数组访问是否越界的判断
逃逸分析

不是直接的优化手段,而是其他优化手段提供依据的分析技术;

如果确定一个对象不会逃逸到方法和线程之外,可以对对象进行如下高效的优化:

栈上分配、同步消除、标量替换

栈上分配

在栈上分配对象;

对象随着方法结束自动消失,节约gc时间;

同步消除 不会逃逸,则没有线程安全问题,则不需要同步
标量替换

标量的定义:指一个数据无法在分解为更小的数据来表示;如java中的原始类型。与标量

对应的是聚合量,例如对象

标量替换:把对象拆散,根据程序访问情况,将其使用到的成员变量恢复原始类型来访问(这些成员属性在栈上创建)