Middle
47
0
questionbank

В чем отличие между Dalvik Virtual Machine и ART (Android Runtime)?

Answer from sobes.tech neural network

Основные отличия между Dalvik и ART заключаются в следующем:

  1. Компиляция:

    • Dalvik: Использует Just-In-Time (JIT) компиляцию. Bytecode компилируется в машинный код во время выполнения приложения.
    • ART: Использует Ahead-Of-Time (AOT) компиляцию по умолчанию. Bytecode компилируется в нативный код при первой установке или обновлении приложения. В ART начиная с Android 7.0 (Nougat) также присутствует JIT-компиляция для оптимизации производительности во время выполнения сбора информации о "горячих" участках кода.
  2. Производительность:

    • Dalvik: JIT-компиляция приводит к задержкам во время выполнения, так как компиляция происходит "на лету".
    • ART: AOT-компиляция обеспечивает более высокую производительность во время выполнения, так как большая часть компиляции выполняется заранее. Однако, установка и обновления приложений могут занимать больше времени из-за компиляции.
  3. Энергопотребление:

    • Dalvik: JIT-компиляция может потреблять больше энергии во время работы приложения из-за постоянной компиляции.
    • ART: AOT-компиляция может быть более энергоэффективной во время работы приложения, поскольку большая часть компиляции завершена до запуска.
  4. Использование памяти и дискового пространства:

    • Dalvik: DVM-файлы (Dalvik Executable) меньше по размеру. Нативный код генерируется при выполнении.
    • ART: ART использует OAT-файлы (Optimized Android Executable), которые содержат оптимизированный нативный код. Эти файлы занимают больше места на диске, но позволяют быстрее запускать приложения.
  5. Сборка мусора (Garbage Collection):

    • Dalvik: Менее эффективные алгоритмы сборки мусора, которые могли приводить к "подтормаживаниям" (hiccups) в работе приложений.
    • ART: Улучшенная сборка мусора с алгоритмами, предназначенными для сокращения пауз, что приводит к более плавным анимациям и отзывчивости интерфейса.
  6. Инструментарий и отладка:

    • Dalvik: Отладка и профилирование могли быть сложнее из-за JIT-компиляци

Основные отличия между Dalvik и ART заключаются в следующем:

  1. Компиляция:

    • Dalvik: Использует Just-In-Time (JIT) компиляцию. Bytecode компилируется в машинный код во время выполнения приложения.
    • ART: Использует Ahead-Of-Time (AOT) компиляцию по умолчанию. Bytecode компилируется в нативный код при первой установке или обновлении приложения. В ART начиная с Android 7.0 (Nougat) также присутствует JIT-компиляция для оптимизации производительности во время выполнения сбора информации о "горячих" участках кода.
  2. Производительность:

    • Dalvik: JIT-компиляция приводит к задержкам во время выполнения, так как компиляция происходит "на лету".
    • ART: AOT-компиляция обеспечивает более высокую производительность во время выполнения, так как большая часть компиляции выполняется заранее. Однако, установка и обновления приложений могут занимать больше времени из-за компиляции.
  3. Энергопотребление:

    • Dalvik: JIT-компиляция может потреблять больше энергии во время работы приложения из-за постоянной компиляции.
    • ART: AOT-компиляция может быть более энергоэффективной во время работы приложения, поскольку большая часть компиляции завершена до запуска.
  4. Использование памяти и дискового пространства:

    • Dalvik: DVM-файлы (Dalvik Executable) меньше по размеру. Нативный код генерируется при выполнении.
    • ART: ART использует OAT-файлы (Optimized Android Executable), которые содержат оптимизированный нативный код. Эти файлы занимают больше места на диске, но позволяют быстрее запускать приложения.
  5. Сборка мусора (Garbage Collection):

    • Dalvik: Менее эффективные алгоритмы сборки мусора, которые могли приводить к "подтормаживаниям" (hiccups) в работе приложений.
    • ART: Улучшенная сборка мусора с алгоритмами, предназначенными для сокращения пауз, что приводит к более плавным анимациям и отзывчивости интерфейса.
  6. Инструментарий и отладка:

    • Dalvik: Отладка и профилирование могли быть сложнее из-за JIT-компиляци

Register or sign in to get access to full answers for all questions from the question bank.

androidvirtual-machineruntimemobile-development