Google admet que Android est à la traîne : le code de la file d'attente des applications réécrit pour la prochaine version
Les ingénieurs de Google ont publié une analyse technique approfondie sur l'un des changements clés, mais subtils, dans le prochain Android 17. Il semble que l'entreprise ait décidé de s'attaquer sérieusement à un problème qui frustre même les propriétaires de modèles phares : ces micro-saccades de l'interface utilisateur qui se produisent lorsque vous faites défiler un fil ou ouvrez un dossier, provoquant un léger accrochage de l'image.
Dans la nouvelle version du système d'exploitation, ils ont réécrit un composant central appelé MessageQueue. En termes simples, pensez-y comme à un répartiteur qui gère quels processus ont accès à la mémoire pour le rendu de l'affichage et quand. Auparavant, ce répartiteur fonctionnait sur un principe d'accès exclusif : un verrou à un seul fil sur l'ensemble de l'ensemble de données. Si un processus en arrière-plan (comme la vérification de l'utilisation des applications) prenait ce verrou, et que le système d'exploitation se concentrait ensuite sur d'autres tâches, le fil de l'interface utilisateur restait bloqué en attente. Le résultat ? Des images perdues et ce sentiment général que le système "hésite" ou semble lent.
Dans Android 17, ils ont abandonné cette approche et remplacé le verrou unique par un mécanisme appelé DeliQueue. Le nom est intentionnel : les ingénieurs établissent une analogie avec un système de tickets de comptoir de charcuterie. Dans une file d'attente classique (comme avant), la prochaine personne ne peut pas avancer tant que la personne au comptoir n'a pas terminé toute sa transaction. Dans le nouveau schéma, chaque nouveau processus reçoit un "ticket" et peut vaquer à ses occupations sans bloquer les autres. Le fil principal (le fil de l'interface utilisateur) décide ensuite de l'ordre de traitement des tâches entrantes, mais sans entrer dans un état d'attente.
Pour accélérer encore les choses, les ingénieurs ont également supprimé les branches conditionnelles dans le code de comparaison des messages. Dans le code classique, le processeur essaie de prédire s'il doit prendre la branche 'oui' ou 'non' ; si la prédiction est incorrecte, du temps est perdu à vider le pipeline. Dans la nouvelle mise en œuvre, cela est remplacé par des calculs "inconditionnels", qui, lors de tests synthétiques, ont montré une augmentation de performance allant jusqu'à 500 % dans des scénarios de forte contention.
Les utilisateurs réguliers n'ont pas besoin d'activer manuellement DeliQueue. C'est une optimisation au niveau du système activée par défaut pour toutes les applications ciblant Android 17. Les développeurs ont déjà accès aux outils de test, et ceux qui sont impatients peuvent installer des versions système anticipées sur des appareils Pixel compatibles.
Que pensez-vous, cela résoudra-t-il réellement les problèmes de fragmentation et de latence sur différents appareils, ou, comme d'habitude, s'agit-il simplement de "promesses sur papier", et en réalité, les fabricants vont tout gâcher à nouveau avec leurs interfaces personnalisées ?

