Java编译器中的优化技术

   日期:2024-12-26    作者:czxinshenghg 移动:http://oml01z.riyuangf.com/mobile/quote/47814.html
        为了解决虚方法的内联问题,Java 虚拟机首先引入了一种名为类型继承关系分析 Class Hierarchy Analysis CHA )的技术,这是整个应用程序范围内的类型分析技术,用于确定在目前已加载的类中,某个接口是否有多于一种的实现、某个类是否存在子类、某个子类是否覆盖了父类的某个虚方法等信息。这样,编译器在进行内联时就会分不同情况采取不同的处理:如果是非虚方法,那么直接进行内联就可以了,这种的内联是有百分百安全保障的;如果遇到虚方法,则会向CHA 查询此方法在当前程序状态下是否真的有多个目标版本可供选择,如果查询到只有一个版本,那就可以假设“ 应用程序的全貌就是现在运行的这个样子” 来进行内联,这种内联被称为守护内联 Guarded Inlining )。不过由于Java 程序是动态连接的,说不准什么时候就会加载到新的类型从而改变 CHA 结论,因此这种内联属于激进预测性优化,必须预留好“ 逃生门 ,即当假设条件不成立时的 退路 Slow Path

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号