web-dev-qa-db-fra.com

Quelle est la différence entre DVM et ART? Pourquoi DVM a été officiellement remplacé par ART à Lollipop?

Depuis Android Lollipop, Google remplace DVM par ART car ART est plus rapide que DVM. Y a-t-il une autre raison à cela?

27
Amit Prajapati

Il y a quelques améliorations de la performance) apportées par l'ART qui manquaient à Dalvik. Mais tous les avantages ont aussi des inconvénients. Je vais essayer de discuter des avantages et des inconvénients ici.


1) Approche de compilation

C’est de loin le plus gros avantage de l’ART par rapport à Dalvik. _ {Le vieil homme Dalvik utilisait l'approche Just-In-Time (JIT)} dans laquelle la compilation était faite à la demande. Tous les fichiers dex ont été convertis en leurs représentations natives respectives uniquement lorsque cela était nécessaire.

Mais ART utilise l'approche Ahead, dans laquelle les fichiers dex ont été compilés avant d'être demandés. Cela améliore considérablement les performances et la durée de vie de la batterie de tout appareil Android.

Par exemple

Dans le cas de Dalvik, chaque fois que vous touchez une icône d'application pour l'ouvrir, les fichiers dex nécessaires sont convertis en leurs codes natifs équivalents. L'application ne commencera à fonctionner que lorsque cette compilation sera terminée. Donc, l'application ne répond pas jusqu'à la fin.

De plus, ce processus est répété à chaque fois que vous ouvrez une application, ce qui gaspille des cycles de processeur et une batterie de grande valeur.

Mais dans le cas d'ART, chaque fois que vous installez une application, tous les fichiers dex sont convertis une fois pour toutes. Ainsi, l'installation prend du temps et l'application prend plus de place que dans Dalvik, mais les performances sont considérablement améliorées et la durée de vie de la batterie est intelligemment conservée}.


2) le temps de démarrage

Dans le cas de Dalvik, le cache est construit avec le temps que le périphérique s'exécute et les applications sont utilisées comme indiqué par l'approche JIT. _ {Le temps de démarrage est donc très rapide.

Mais dans le cas d'ART, le cache est construit lors du premier démarrage, le temps de démarrage est donc considérablement plus long dans le cas d'ART. Une boîte de dialogue "Optimisation des applications" peut parfois s'afficher.


3) Utilisation de l'espace

L'espace utilisé par les applications exécutées sur ART est bien plus que celui de Dalvik. Comme une application de 20 Mo sur Dalvik, prend plus de 35 Mo sous ART. 

Donc, si vous utilisez un périphérique de stockage faible, cela peut être un inconvénient majeur pour vous. 


4) L'ART est sacrément rapide

Comme discuté ci-dessus, ART est extrêmement rapide et fluide. Les applications sont très vives et réactives. Toute comparaison entre Dalvik et ART fera sûrement gagner l’appareil ART par une marge significative.

ART est la réponse à tous ceux qui ont soutenu qu'iOS est plus rapide et plus fluide qu'Android et qu'il est également plus économe en énergie.

77
Aritra Roy

Dans Android Lolipop, le DVM a été remplacé par ART. Parce que DVM convertit le bytecode chaque fois que vous lancez une application spécifique. Mais ART le convertit une seule fois au moment de l'installation de l'application. Cela facilite l'exécution du processeur. ARM est une architecture. Comme MIPS, x86, etc., DVM/ART est basé sur ARM. Les deux ne peuvent pas se remplacer. J'espère que cela efface votre confusion.

2
kazisami

Dans les versions Android 4.4 et supérieure, avec Dalvik, Google a introduit un nouveau runtime Android appelé «ART».

Différence entre ART et Dalvik

ART (Android RunTime) a pour caractéristique principale la compilation AOT (Ahead-of-Time),

AOT vs JIT

Le format des applications Android est .apk et toutes les classes Java converties en bytecode DEX. Le format de code intermédiaire DEX est indépendant de l'architecture du périphérique et doit être converti en code machine natif pour pouvoir être exécuté sur le périphérique. Il en va de même pour les runtimes ART et Dalvik.

Différence principale, ART (Android RunTime) utilisé dans la compilation AOT, Dalvik est utilisé dans la compilation Just-in-Time (JIT)

Avec Dalvik, la compilation Just-in-Time (JIT) à chaque exécution de l'application permet de convertir le code dexte dex en code machine et de le mettre en cache.

voir ici plus de détails http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html

0
Kamal Kakkar

Android 4.4 KitKat, Google a décidé d'introduire une nouvelle façon d'exécuter des applications sur le système d'exploitation Android. Regardons de plus près ce que cette nouvelle exécution, appeléeART

ART est le projet secret en cours de deux ans de Google, qui vise à améliorer les performances de nos appareils Android.

Android L (5.0) ART a été créé comme environnement d'exécution par défaut (ART a complètement remplacé Dalvik).

ART (Android RunTime) est la prochaine version de Dalvik. Dalvik est le runtime, le bytecode et VM utilisés par le système Android pour exécuter des applications Android.

Dalvik est basé sur JIT (juste à temps) compilation. Cela signifie que chaque fois que vous exécutez une application, la partie du code nécessaire à son exécution va être traduite (compilée) en code machine à ce moment. Au fur et à mesure que vous avancez dans l'application, du code supplémentaire va être compilé et mis en cache, afin que le système puisse le réutiliser pendant l'exécution de l'application. JIT ne compilant qu’une partie du code, sa mémoire est moins encombrante et elle utilise moins d’espace physique sur le périphérique.

ART vs Dalvik/AOT vs JIT

Avantages de ART sur Dalvik:

  1. La vitesse de lancement des applications est incroyablement rapide en cas d’ART puisque rien n’est compilé à l’exécution.
  2. La vitesse de démarrage est plus rapide que dalvik puisque rien n’est exécuté depuis la partition dalvik comme dans le cas de odexed ROM dans dalvik
  3. Augmente la sauvegarde de la batterie en réduisant le travail du processeur en raison de l'absence de travail de compilation lors de l'exécution des applications.
  4. Collecte de déchets améliorée (GC)
  5. Et finalement, c'est une belle récompense pour les développeurs car la plupart d'entre eux craignent que les ROM odexed soient plus rapides que les ROM désodexées, mais ils désodexeront leurs ROM car ils la thématisent fortement. Dans le cas d'ART, que le ROM soit odexed ou désodexé, peu importe, le code complet est compilé dans le langage de la machine lors de l'installation des applications. de sorte que même les ROM désodexées sont aussi rapides que celles de ART

Inconvénients de l'ART

  1. Comme ART précompile les applications lors de l’installation, il faut 10 à 20% plus d’espace lors de l’installation que dalvik.
  2. Comme les bytecodes de dex sont convertis en code machine natif lors de l'installation, l'installation prend plus de temps.

Les temps d’installation sur mon Nexus 4, pour l’un de nos plus gros projets, ont grimpé de 17 s à ~ 25 s.

Résultats de Dalvik contre ART (Android 4.4): Linpack

Filetage simple ---> Dalvik (135) ---> ART (149) ---> 10,93%

Multifilaire ---> Dalvik (336) ---> ART (383) ---> 13,82%

0
Dhaval Jivani