Другое

Среда выполнения Art: ее проблемы, преимущества и недостатки

Lorem ipsum dolor

Среда выполнения Art была добавлена еще в Android 4.4 KitKat в качестве теста. Она начала работать рядом с виртуальной машиной Dalvik и включалась/выключалась вручную, чтобы пользователи могли почувствовать разницу между Art и Dalvik.

Главное отличие между ними — это подход в запуске приложений. То есть приложения на Андроиде хранятся в apk-файлах. Когда мы нажимаем на иконку приложения, то запускается именно этот вид файла. Такие файлы можно обрабатывать несколькими способами, среда выполнения Art и виртуальная машина Dalvik использовали совершенно разные подходы:

  • виртуальная машина Dalvik для компиляции приложений применяла подход JIT, что подразумевает компиляцию приложения непосредственно при его запуске, очень часто такой подход характеризуется весьма долгим временем ожидания;

  • среда выполнения Art для компиляции приложений использует подход АОТ, что подразумевает предварительную компиляцию приложений еще на стадии их инсталляции на устройство.

 

Среда выполнения Art

Среда выполнения Art несет в себе главное преимущество — это более ускоренный запуск приложений на самом устройстве за счет того, что приложение скомпилировано на стадии установки. Однако такой подход имеет и обратную сторону — на стадии установки приложений требуется намного больше времени, чем при Dalvik, плюс для самого приложения требуется больше места в хранилище устройства. Но в дальнейшем нагрузка на процессор и энергопотребление устройства значительно уменьшаются.

Изначально, когда среда выполнения Art была внедрена в Андроид в качестве теста, пользователи активно сравнивали между собой два подхода для запуска приложений Art и Dalvik на производительность, энергопотребление, скорость загрузки и установки приложений и т. д. В разных видах тестирования разные подходы показывали лучшие результаты. То есть в глобальном смысле обе эти виртуальные машины были на равных позициях, поэтому смотреть только в сторону Art или Dalvik не несло в себе смысла. Например, если у пользователя было устройство с ограниченным хранилищем, но он пользовался большим количеством приложений, то ему сподручней было использовать Dalvik, так как при таком подходе приложения занимали меньше места на устройстве. Если ограничений с памятью не было, то можно было применять Art и наслаждаться более быстрым запуском и работой приложений. Но это было на Android 4.4, на которой еще можно было выбирать среду выполнения.

На всех версиях Андроида, которые были ниже 4.4, стояла виртуальная машина Dalvik. А начиная с Android 5.0, среда выполнения Art полностью вытеснила с устройств Dalvik.

 

Сравниваем Dalvik и Art

Виртуальная машина Dalvik несла в себе следующие особенности:

  • использование JIT-подхода для компиляции приложений;

  • при компиляции компилировался не весь код, а лишь тот, который был необходим для работы приложения, а весь остальной код при необходимости компилировался динамически;

  • само устройство быстро загружалось, потому что не было необходимости сразу загружать кэш приложений;

  • программы, работающие на Dalvik, требуют намного меньше оперативной памяти, чем программы, работающие на Art;

  • эта виртуальная машина больше расходовала батарею за счет большей нагрузки процессора устройства.

Среда выполнения Art несет в себе следующие особенности:

  • применяет АОТ-подход при компиляции приложений, что ускоряет их запуск и работу;

  • устройства загружаются дольше за счет того, что должен загрузится кэш всех установленных приложений;

  • такой подход уменьшает нагрузку на батарею и процессор устройства;

  • требует большей памяти хранилища самого устройства из-за того, что приложения при их инсталляции сразу компилируются и занимают много места.

Но главным отличием Art от Dalvik считается отказ от JIT и использование АОТ. Однако так было до Android 7.0. Потому что в этой версии Андроида было решено возродить JIT, что и было сделано.

 

Современная среда выполнения Art — это AOT и JIT вместе

Современные версии Android используют среду выполнения Art, в которой сочетаются два казавшихся несовместимыми подхода для компиляции приложений: JIT и AOT. Вроде бы изначально разработчики бежали от «долгого» JIT, но со временем пришло понимание, что этот подход по-своему хорош, поэтому его внедрили в Art.

JIT не применяется как основной способ компилирования приложений, а всего лишь как дополнительный инструмент, который «подключается» на определенных этапах. Например, изначально компиляция приложений запускается на JIT, а в это время АОТ лишь «наблюдает» за ходом работы. АОТ замечает, какие участки кода приложения выполняются чаще, и берет их компиляцию на себя во время бездействия смартфона. Таким образом, в следующий раз при запуске приложения и «этих» участков кода в работу вступит AOT.

Такая совместная реализация принесла свои особенности, например:

  • компиляция приложений происходит с большей эффективностью, потому что при таком смешанном подходе компилятор о приложении «узнает» намного больше, чем при раздельной компиляции;

  • существенно экономится оперативная и постоянная память, то есть не нужно компилировать все приложение при его установке, но и не нужно постоянно динамически компилировать все приложение в процессе работы, потому что компилируется и остается скомпилированной только та часть приложения, которой пользуется пользователь устройства;

  • ускорена первая загрузка операционной системы приложений на устройство, потому что не применяется «чистый» АОТ-подход.

 

Заключение

Среда выполнения Art плотно занимала свои позиции в Андроидах версий 5.0-7.0 и показала свои преимущества. Однако старый JIT-подход не собирался сдаваться, поэтому «вернулся» в Андроид 7.0, создав отличный тандем JIT+AOT, который работает на современных версиях Android.

Схожие статьи

Что такое todo file description? Исправляем эту ошибку самостоятельно
Другое

Что такое todo file description? Исправляем эту ошибку самостоятельно

Другое

Что такое поиск по документу ПДФ, для чего нужна эта функция

Как выполнить расширение диска C в Windows 7, как найти Мастера расширения томов
Другое

Как выполнить расширение диска C в Windows 7, как найти Мастера расширения томов

Система умного поиска: что это, как оно работает и как можно настроить
Другое

Система умного поиска: что это, как оно работает и как можно настроить