- java虚拟机都是基于栈的结构,而Dalvik虚拟机则是基于寄存器。
- 基于栈的指令很紧凑。java虚拟机使用的指令只占一个字节,因而称为字节码。
- 基于寄存器的指令由于需要指定源地址和目标地址,因此需要占用更多的指令空间。
- Dalvik虚拟机的某些指令需要占用两个字节。
- 基于栈和基于寄存器的指令集各有优劣,一般而言,执行同样的功能,基于栈的需要更多的指令(主要是load和store指令),而基于寄存器需要更多的指令空间。
- 栈需要更多指令意味着要多占用CPU时间,寄存器需要更多指令空间意味着数据缓冲更易失效。