Avec Lollipop, Google a introduit la machine virtuelle ART pour remplacer, par défaut, Dalvik. Celle-ci permet une hausse des performances. Le compilateur Quick intégré à la machine virtuelle ART va bientôt laisser sa place à Optimizing pour des performances encore plus élevées.

Desire 610 Bugdroid

Pour ceux qui ne sont pas familiers avec ART, vous pouvez lire ou relire nos articles sur la question comme celui traitant de l’arrivée d’ART par défaut sous Lollipop ou encore un autre traitant de son arrivée – optionnelle – sous KitKat. Pour résumer, ART est une machine virtuelle qui compile – à l’aide d’un compilateur – le code des applications pour que le processeur puisse le comprendre et ouvrir les applications. ART dispose d’un fonctionnement AOT (Ahead-of-time) contre JIT (Just-in-time) pour Dalvik. C’est notamment cette différence qui permet à ART d’avoir de meilleures performances avec les applications mais d’augmenter leur temps d’installation. À l’intérieur de cette machine virtuelle, on trouve le compilateur, qui compile le bytecode en langage compréhensible par le processeur. Actuellement, c’est Quick qui s’en charge mais il commence à être progressivement remplacé par Optimizing.

Quick vs Optimizing

Google travaille main dans la main avec ARM sur Optimizing. L’idée est de compiler un code qui sera le plus efficace possible pour augmenter les performances de l’application. Au lieu d’être basé sur le compilateur de Dalvik (comme l’est Quick), les ingénieurs ont tout repris de zéro. Ainsi, de nouvelles fonctionnalités font leur apparition, comme un algorithme qui permet d’analyser le code et de se débarrasser des registres inutiles. Le code est donc optimisé pour des performances revues à la hausse. Ce type de fonctionnalité augmente le temps de compilation (ARM parle de 8 %) ainsi que la taille de l’application (environ 10 %) mais certains benchmarks verraient une augmentation de leurs performances de l’ordre de 40 %.

Optimizing vs Quick 3

Optimizing devrait rapidement faire son apparition sur Android puisque c’est le compilateur actuellement utilisé pour certaines compilations d’AOSP. Quick est toutefois encore utilisé pour certaines tâches comme la compilation de l’image de boot par exemple. ARM est en train de préparer des patchs pour optimiser le fonctionnement avec ses cœurs 64 bits alors que Google s’occuperait de la partie 32 bits. On devrait en savoir un peu plus sur Optimizing et les plans de Google pour intégrer ce compilateur à Android lors de la Google I/O qui se déroulera les 28 et 29 mai à San Francisco.