加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – HotSpot JIT内联策略:自顶向下还是从下到上

发布时间:2020-12-14 05:14:33 所属栏目:Java 来源:网络整理
导读:假设我们有3种方法:方法2从方法1中调用,方法3由方法2调用. 方法2和3每个大小为30个字节码.另外,假设定义方法2总是从方法1调用一次,方法3总是从方法2调用一次. 如果方法2首先被内联,则方法3将从方法1的主体直接调用,并且可以轮流地内联.如果方法3首先插入到
假设我们有3种方法:方法2从方法1中调用,方法3由方法2调用.
方法2和3每个大小为30个字节码.另外,假设定义方法2总是从方法1调用一次,方法3总是从方法2调用一次.

如果方法2首先被内联,则方法3将从方法1的主体直接调用,并且可以轮流地内联.如果方法3首先插入到方法2中,则后者的大小将变为大约60个字节码,并且由于默认的MaxInlineSize阈值是35字节码,因此它不能被内联.

在哪个顺序HotSpot JIT内嵌方法:自顶向下还是从下到上?

解决方法

MaxInlineSize影响至少执行一次但小于MinInliningThreshold次的方法的编译.对于超过MinInliningThreshold执行的方法,存在一个不同的设置-XX:FreqInlineSize = …具有更大的(依赖于平台的)默认值.无论MaxInlineSize如何,热点仍然内联.您可以通过使用-XX运行应用程序来测试它:UnlockDiagnosticVMOptions -XX:PrintInlining -XX:MaxInlineSize = 0.它仍然会报告热点的内容(这些与评论“(热)”).只有以前报告的方法与“执行” MinInliningThreshold times“可能会使评论”太大“.如果您设置了FreqInlineSize,您可能会收到“热法太大”等评论.我从来没有看到他们的默认设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读