Le nouveau processeur intégré à l’Apple A12 des iPhone XS et XR représente une évolution plus significative que prévue pour de multiples raisons. Nous avons évoqué sa meilleure gestion de la mémoire, mais ce n’est pas le seul changement. La puce d’Apple est la première à utiliser une nouvelle spécification ARM, notée ARMv8.3. Comme le note Greg Parker sur Twitter, celle-ci ajoute des instructions spécifiques pour JavaScript.
Grâce à ces instructions, les processeurs ARM sont nettement plus rapides pour traiter du code en JavaScript, en particulier parce qu’ils sont compatibles avec le format de stockage des nombres du langage. Jusque-là, ils devaient convertir chaque nombre avant de le traiter, ce qui n’a l’air de rien, mais ce qui représentait un goulot d’étranglement dans l’exécution du code.
En s’adaptant ainsi au langage le plus populaire du moment, sur le web et aussi dans les apps avec des solutions comme React Native, les processeurs ARM peuvent améliorer leurs performances dans bon nombre de cas. Le changement doit d’ailleurs expliquer pourquoi un iPhone XS peut obtenir un meilleur score qu’un iMac Pro à un benchmark JavaScript. On imagine que le processeur Xeon utilisé par le tout-en-un n’est pas optimisé aussi spécifiquement pour ce langage, ce qui le handicape malgré sa puissance brute incomparable à celle de l’Apple A12.
[MàJ 12/10/2018 13h45] : un développeur d’Apple révèle que le moteur JavaScript de Safari ne prend pas encore compte cette nouveauté apportée par ARM. En clair, les progrès liés à la nouveauté ne sont pas encore en place dans les iPhone XS, et les bons résultats sur les benchmarks s’expliquent uniquement par la qualité du processeur.
Ce qui veut aussi dire que l’on peut s’attendre à des performances encore meilleures dans ce domaine prochainement. On imagine qu’iOS 12.1 sera la première version à en bénéficier.
Source : Daring Fireball