根据 Oracle 文档 Run-Time Data Areas状态,JVM包含数据区的各个部分:
而且我还了解到 JVM 是基于堆栈的,而 ART/Dalvik 是基于寄存器的。 Dalvik堆由Active Heap和Zygote Heap组成。
问题如下:
1. stack-based中的“Stack”和Java VM stack/Native Method Stack中的“Stack”有什么区别?
2. ART/Dalvik 是否像JVM 中的Java VM 堆栈一样包含堆栈?
3. ART/Dalvik 运行时数据区是什么样的?
最佳答案
- What is the difference between "Stack" in stack-based and "Stack" in Java VM stack/Native Method Stack.
它们指的是同一件事。 “基于堆栈的”VM 使用其内存空间的堆栈
来执行逻辑和算术运算。
Does ART/Dalvik contain stacks like Java VM stacks in JVM?
Android VM 实现(Dalvik 和 ART)不是基于堆栈
,而是基于寄存器
。这允许 Android 做的一件事是直接将虚拟寄存器映射到真实的硬件寄存器,从而提高执行速度和效率。
- What do ART/Dalvik Run-Time Data Areas look like?
您可以查看此示例,并阅读有关基于堆栈与基于寄存器的 VM 的更多信息 here .
关于java - Android 运行时(ART 或 Dalvik)是否像 JVM 一样包含 Java VM 堆栈或 native 方法堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53003459/