程序编译与代码优化-11.晚期(运行期)优化

本文深入探讨HotSpot虚拟机中的即时编译器(JIT),解析解释器与编译器的工作原理,介绍热点探测策略,包括基于采样和计数器的方法,并详细阐述编译优化技术,如方法内联、冗余访问消除等,帮助读者理解如何提高Java应用程序的运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1概述

2hotspot内的JIT

2.1解释器与编译器

2.2编译对象与触发条件

2.3编译过程

2.4查看及分析即时编译的结果

3编译优化技术

3.1优化技术概览

3.2公共子表达式消除

3.3数组边界检查消除

3.3方法内联

3.4逃逸分析


1概述

2hotspot内的JIT

2.1解释器与编译器

解释器:

省去编译时间,启动迅速,节约内存

编译器:

执行效率高

2.2编译对象与触发条件

热点探测方式:

基于采样:周期性检查各线程栈顶,优点是实现简单,容易获取方法调用关系。

基于计数器:为每个方法(代码块)建立计数器,优点是精确。

方法调用计时器有半衰周期

2.3编译过程

2.4查看及分析即时编译的结果

未来补充

 

3编译优化技术

3.1优化技术概览

方法内联(最重要):降低方法调用成本,为其它优化建立良好基础

冗余访问消除

复写传播

无用代码消除

3.2公共子表达式消除

3.3数组边界检查消除

3.3方法内联

降低方法调用成本,为其它优化建立良好基础

解决方法内联:

3.4逃逸分析

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值