gpt4 book ai didi

java - 现代 JVM 是否优化了简单的内联匿名类分配?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:03 27 4
gpt4 key购买 nike

我今天收到一个代码审查评论,将这个匿名类提取到一个字段中,以避免一遍又一遍地分配它:

Collections.transform(new Function<Foo, Bar>(){
Bar apply(Foo foo) {
// do some simple local transform of foo into a Bar.
}
});

我回答说“没关系,JVM优化了”。虽然我确实知道这种“优化”不会以任何方式影响性能,而且我认为代码可内联访问的附加值是值得的,但我很好奇我对 JVM 优化的看法是否正确。所以,我的问题是 - 提议的重构绝对是空操作,因为 JVM 无论如何都会对其进行优化,或者这里是否存在一些微小的理论性能增益?

最佳答案

我不会特别期望它优化它,不。

它必须确保 Collections.transform 永远不会隐藏 Function,并且方法本身永远不会使 this 可见等. 显然所有这些都是可行的 - 但在极少数情况下,为了获得相对较小的 yield 可能需要做大量工作。

如果不仔细检查,很难说任何特定 VM 做了什么 - 但我认为“它不会显着影响性能”比“JVM 优化它”更合理。

关于java - 现代 JVM 是否优化了简单的内联匿名类分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115783/

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