【发布时间】:2011-02-12 18:01:40
【问题描述】:
我很好奇,为什么 Sun 决定让 JVM 堆栈基于,而 Google 决定让 DalvikVM 基于寄存器?
我认为 JVM 不能真正假设目标平台上有一定数量的寄存器可用,因为它应该是独立于平台的。因此,它只是将寄存器分配等推迟到 JIT 编译器。 (如果我错了,请纠正我。)
所以 Android 人想,“嘿,这太低效了,让我们立即使用基于寄存器的 vm……”?但是等等,有多个不同的 android 设备,Dalvik 的目标寄存器是多少? Dalvik 操作码是否针对一定数量的寄存器进行硬编码?
目前市场上所有的 Android 设备都具有大致相同数量的寄存器吗?或者,在 dex 加载期间是否执行了寄存器重新分配?这一切如何结合在一起?
【问题讨论】:
-
Google 是否决定让 DalvikVM 基于寄存器?我认为 DalvikVM 是在 Google 收购 Android Inc. 之前实施的。
-
你当然是对的。 (虽然与问题不太相关;)
标签: jvm dalvik cpu-registers computer-architecture vm-implementation