gpt4 book ai didi

java - Java 中的局部引用优化

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:32:38 25 4
gpt4 key购买 nike

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 的值被另一个线程更改,即使是最简单的 return thing; 语句也可以返回不同的值。

关于java - Java 中的局部引用优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com