java 选项 -XX:-EliminateAllocations 有什么作用?

What does the java option -XX:-EliminateAllocations do?

java 选项 -XX:-EliminateAllocations 有什么作用? 我找不到任何关于它的文档。

此键禁用 "Scalar replacement optimization"

简而言之,当一个对象被识别为非逃逸时,JVM 可以将其在堆上的分配替换为其成员在堆栈上的分配,这减轻了用户引导堆栈分配的不足。自JDK 6U23 在热点服务器编译器中默认启用优化。

More info.

HotSpot JIT 确实通过用变量替换对象字段来消除本地分配。优化称为Scalar Replacement.
-XX:+EliminateAllocations JVM 标志用于控制此优化,默认情况下打开。