Когда виртуальная машина Java запускает программу, ей требуется память для хранения многих вещей, включая байт-коды и другую информацию, которую она извлекает из загруженных файлов классов, объекты, создаваемые программой, параметры методов, возвращаемые значения, локальные переменные и промежуточныерезультаты вычислений.
Виртуальная машина Java организует память, необходимую для выполнения программы, в несколько областей данных времени выполнения.
Как правило, машины на основе стека должны использовать инструкции для загрузки данных в стек и манипулирования этими данными, и, следовательно, для реализации того же кода высокого уровня требуется больше инструкций, чем для регистрационных машин, но инструкций в регистремашина должна кодировать регистры источника и назначения и, следовательно, иметь тенденцию быть больше.
Это различие в первую очередь важно для интерпретаторов VM, для которых диспетчеризация кода операции является дорогостоящей, а другие факторы имеют значение для компиляции JIT.
Оптимизированный для низких требований к памяти, Dalvik обладает некоторыми специфическими характеристиками, которые отличают его от других стандартных виртуальных машин >>>>>
Виртуальная машина была просто уменьшена, чтобы использовать меньше места --- >>В настоящее время в Dalvik нет компилятора JIT, но в Android 2.0 имеется экспериментальный источник для него (по умолчанию отключен).Пул констант был изменен для использования только 32-битных индексов для упрощения интерпретатора.Он использует свой собственный байт-код, а не байт-код Java ***