Java中的本地参考优化
发布时间:2020-12-15 08:45:29 所属栏目:Java 来源:网络整理
导读:void myMethod(Object arg){ arg.getThing().method1(); arg.getThing().method2();} 基本的Java 6安装是否会将其优化为对访问器的单个调用(可能通过将引用存储在本地).我意识到如果有多个线程,优化器可能不得不这样做.几乎所有Java 6 JVM都有我可以期待的常
void myMethod(Object arg) { arg.getThing().method1(); arg.getThing().method2(); } 基本的Java 6安装是否会将其优化为对访问器的单个调用(可能通过将引用存储在本地).我意识到如果有多个线程,优化器可能不得不这样做.几乎所有Java 6 JVM都有我可以期待的常见优化列表吗? 例: { Object local = arg.getThing(); local.method1(); local.method2(); } 解决方法
我不希望javac编译器在这里进行任何优化,因为getThing()的值可以随时间和调用之间的变化(例如,堆栈上的随机值或pop()操作或当前时间.你明白了.
也许JIT编译器可以优化它,如果它看到getThing()方法总是返回相同的东西,但我不会指望它.即便是最简单的回报;如果thing的值被另一个线程更改,则statement可以返回不同的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |