jvm晚期优化

最具代表性的几个优化技术
  • 语言无关的经典优化技术之一:公共子表达式消除
  • 语言相关的经典优化技术之一:数组范围检查消除
  • 最重要的优化技术之一:方法内联
  • 最前沿的优化技术之一:逃逸分析
公共子表达式消除

描述 如果一个表达式E已经计算过了,并且从先前的计算到现在E中的所有变量的值都没有发生变化,那么E的这次出现就成为了公共子表达式

int d = ( c * b ) * 12 + a + ( a + b * c );
优化为
int d = E * 12 + a + ( a + E );
优化为
int d = E * 13 + a * 2
数组泛微检查消除

描述 对于虚拟机的执行子系统来说,每次进行数组元素的读写都会带着一次隐含的条件判断,对于拥有大量数组访问的程序代码,这无疑是一种性能负担

如果编译器只要通过数据流分析就可以判定循环变量的取值范围一定不会超出数组的范围,
那么整个循环中就可以把数组的上下界检查消除,节省很多次的条件判断操作
方法内联

方法内联的优化看起来非常简单,不过是吧目标方法的代码“复制”到发起调用的方法之中,避免发生真实方法的调用

逃逸分析

描述 逃逸分析并不是直接优化代码的手段,而是为其他优化手段提供依据的分析技术

1、栈上分配
2、同步消除
3、标量替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值