Содержит ли среда выполнения android (art или dalvik) стек виртуальных машин java или стек собственных методов, например jvm?

Согласно Oracle Docs Области данных времени выполнения, JVM содержит различные части областей данных: enter image description here И я также узнал, что JVM основана на стеке, а ART / Dalvik - на основе регистров. Куча Dalvik состоит из Active Heap и Zygote Heap.
Вопросы следующие:
1. В чем разница между «стеком» в стеке и «стеком» в стеке виртуальных машин Java / стеке собственных методов.
2. Содержит ли ART / Dalvik такие стеки, как стеки Java VM в JVM?
3. Как выглядят области данных времени выполнения ART / Dalvik?

Прежде всего, это просто имена, данные частям памяти для обозначения цели. Итак, они есть во всех средах исполнения или вроде как, даже если они могут использовать для них разные имена. Кроме того, у вас определенно слишком много вопросов в одном. Тем не менее, один лишь третий слишком широк для Stackoverflow. Если вы хотите узнать, как выглядят области данных времени выполнения Dalvik, обратитесь к документации по внутреннему устройству Dalvik, если таковая имеется.

Holger 26.10.2018 13:59

@Holger Спасибо за ответ. Я долго искал области данных времени выполнения Dalvik, но мне кажется, что понятие «области данных времени выполнения» будет упоминаться только в JVM. Я прочитал несколько статей о внутреннем устройстве Dalvik, но не нашел ничего похожего на области данных времени выполнения JVM.

MummyDing 27.10.2018 16:03
4
2
1 096
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. What is the difference between "Stack" in stack-based and "Stack" in Java VM stack/Native Method Stack.

Они относятся к одному и тому же. Виртуальная машина «на основе стека» использует stack своего пространства памяти для выполнения логических и арифметических операций.

Does ART/Dalvik contain stacks like Java VM stacks in JVM?

Реализация Android VM (как Dalvik, так и ART) - это не Stack based, а Register based. Одна вещь, которую это позволяет Android делать, - это напрямую сопоставлять виртуальные регистры с реальными аппаратными регистрами, что повышает скорость и эффективность выполнения.

  1. What do ART/Dalvik Run-Time Data Areas look like?

Вы можете увидеть пример этого и узнать больше о виртуальных машинах на основе стека и регистрах здесь.

Другие вопросы по теме