2

为什么 JVM 是基于堆栈的虚拟机?这到底是什么意思,与基于寄存器的虚拟机相比有什么优势?虚拟机制造商还有其他主要的设计/实现选择吗?

4

1 回答 1

4

基于堆栈的虚拟机非常简单,无论是作为概念还是实现。几乎任何具有 CS 背景的人都可以用几百行代码实现一个简单的功能齐全的 VM。

如果需要,您可以将堆栈视为任意数量的寄存器。从一开始就添加寄存器将是过早的优化。

然后,一个简单的概念可以更轻松地在模型之上执行真正的魔术,例如 Hotspot。这并不简单,但是您可以根据自己的能力选择复杂程度,从直接解释器到简单的 JIT 再到 Hotspot。

于 2011-08-22T23:08:44.517 回答