Oracle JIT内联

时间:2017-08-17 06:03:54

标签: java jit

是否有关于各种JVM的JIT的综合文档?我被闪电击中,对于下面的场景,我只是希望 JIT会做正确的事,但我找不到任何关于我的希望是否合理的文件。

情景:

if (complexCondition(myObject) && effectivelyStaticBoolean) {
    ...
}

effectivelyStaticBoolean在类的实例化时被读取一次,并且实际上是静态final,这意味着在同一个JVM中它始终是truefalse,但永远不会改变行为(最基本的例子是StringUtils.containsIgnorecase(System.getProperty("os.name"), "win");

complexCondition(myObject)取决于实际的对象实例,检查成本很高。

我的希望:JIT会启动,如果effectivelyStaticBoolean == false,那么最终(如果确定为热门)将不会对complexCondition(...)进行评估。

我的希望是否合理? (特别是对于Oracle JVM,但我也对其他主流JVM的答案感兴趣)

0 个答案:

没有答案