Java选项-XX:-EliminateAllocations是什么?

6
Java选项-XX:-EliminateAllocations是什么? 我找不到任何关于它的文档。

1
它防止JIT执行“分配消除”优化,我认为这种优化是通过直接查看对象的字段来跳过对象分配。 - assylias
2个回答

1
这个关键字禁用了“标量替换优化”。
简单地说,当一个对象被识别为非逃逸时,JVM可以将其在堆上的分配替换为其成员在栈上的分配,从而缓解用户引导栈分配的不足。自JDK 6U23以来,在hotspot服务器编译器中默认启用了该优化。 更多信息。

1

HotSpot JIT通过将对象字段替换为变量来消除本地分配。这种优化称为标量替换
-XX:+EliminateAllocations JVM标志用于控制此优化,默认情况下为ON。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接