2

Java 规范允许编译器和 VM 重新排序内存写入以提高效率。Dalvik VM 是否充分利用了这一点?

免责声明:即使 Dalvik 不这样做,我也不打算依赖订单(除了编译器也可能这样做),但很高兴知道。

4

1 回答 1

2

Dalvik 解释器不会重新排序任何东西。JIT 编译器可能会。

真正变得古怪的地方是具有多个 CPU 的设备,因为 ARM 内存一致性模型非常薄弱。在这样的环境中,即使只使用解释器,您也可以观察到无序的内存访问。

如果 JSR-133 (JMM) 文档说您不能依赖某些东西,请不要依赖它。:-)

于 2010-10-19T22:47:52.380 回答