- 主题:jvm 为啥选择栈虚拟机而不是寄存器虚拟机?
【 在 hgoldfish 的大作中提到: 】
: 不论是 python vm 还是 java vm,为啥当初会选择栈虚拟机?
简单
: 但 google 的 android runtime 虚拟机选择的却是寄存器虚拟机?
要考虑到性能
: 这俩有啥特别的考虑吗?
: ...................
--
FROM 71.204.185.*
反了
栈处理器的代码更小
【 在 dreamr 的大作中提到: 】
: 基于寄存器虚拟机编译出来的指令码更短小一些,更加适合移动端
--
FROM 71.204.185.*
说的就是最终的指令大小
如果你能翻墙的话,读一读维基上的stack machine
另外楼主要的stack machine VS register machine 在那片文章里面也有
【 在 dreamr 的大作中提到: 】
: 栈处理器单条指令短,但是指令数量多得多,整体上看编译结果体积更大
--
FROM 71.204.185.*
不,android觉得jvm的栈虚拟机太慢了,就改成了寄存器
google search ai也是这么看的
Android chose Dalvik as its virtual machine (VM) for a number of reasons, including:
Memory efficiency: Dalvik was optimized for memory and battery usage.
Register-based model: Dalvik's register-based model was faster than the stack-based model used by the Java Virtual Machine (JVM).
Compatibility: Dalvik was compatible with other runtimes that executed DEX bytecode.
【 在 dreamr 的大作中提到: 】
: 照你这么说,android 应该用栈式虚拟机
--
FROM 71.204.185.*
也就只有在你那里栈虚拟机不比寄存器虚拟机慢
【 在 dreamr 的大作中提到: 】
: 栈虚拟机并不会比寄存器虚拟机慢,dalvik性能比jvm好,是因为针对移动设备做了优化
: 发自「今日水木 on ELS-AN00」
--
FROM 71.204.185.*