L’interface d’iOS 12 promet d’être beaucoup plus fluide que les versions précédentes, grâce à une série de modifications apportées par Apple. Lors de la session « New Cocoa Touch » à la WWDC 2018, les ingénieurs d’Apple ont expliqué que iOS 12 a permis de résoudre des problèmes d’animation subis par les utilisateurs depuis des années.

Apple a notamment apporté des changements capables d’améliorer la planification des tâches effectuées par le processeur de l’appareil iOS, ainsi que le préchargement des animations à venir. Un problème identifié dans les versions précédentes concernait la manière dont iOS gérait les données qui devaient être produites pendant que l’utilisateur faisait défiler l’interface. Une API introduite dans iOS 10, appelée Cell Pre-fetch, visait à résoudre ce problème en préchargeant à l’avance les données en arrière-plan, afin que l’animation soit prête à apparaître sur l’écran sans retards et sans charge soudaine et élevée sur le processeur.

Bien que cette approche fonctionne bien, Apple a découvert qu’il y avait encore une perte de trames pendant le défilement, causée par des demandes de préchargement de données qui auraient dû être utilisées peu de temps après. En pratique, le CPU devait gérer à la fois les données produites sur l’écran à ce moment-là et le préchargement de celles des animations entrantes, provoquant un goulot d’étranglement du processeur qui, dans certains cas, pouvait provoquer un ralentissement des deux activités.

Apple a ensuite mis à jour les API de pré-extraction pour empêcher que cela ne se reproduise, en mettant en file d’attente les activités de récupération de données uniquement après l’achèvement de la tâche de rendu la plus importante et la plus urgente.

Un autre problème, probablement encore plus grand, était lié aux trames perdues pendant les périodes où il y avait peu de tâches à effectuer, c’est-à-dire les périodes où le processeur n’était pas sous charge et pouvait réduire sa vitesse d’horloge pour aider à préserver la vie de la batterie.

Dans les cas où une action de l’utilisateur a initié une tâche, Apple a constaté que le processeur était lent à répondre lors d’un travail supplémentaire avec une augmentation de sa vitesse d’horloge, causant effectivement un goulot d’étranglement et causant une perte de trames.

Dans iOS 12, le processeur répondra plus rapidement dans ces types de situations et augmentera jusqu’à la vitesse d’horloge appropriée pour effectuer toutes les tâches à un rythme plus rapide. Une fois la tâche demandée par l’utilisateur terminée, le processeur réduira la vitesse de l’horloge à son niveau minimum et le plus rapidement possible.

La mise en page automatique, le cadre d’Apple qui permet aux développeurs de définir le positionnement du contenu d’une application sur un écran pour différents types de dimensions, a été mise à jour pour consommer moins de ressources dans iOS 12. Il a été constaté que les ressources utilisées par le cadre peuvent évoluer exponentiellement dans un grand nombre de cas, par exemple lorsque les éléments sont imbriqués ou dépendent du placement d’autres éléments.

En général, les optimisations d’Apple dans iOS 12 ont considérablement réduit les éléments de mise à l’échelle exponentielle, réduisant ainsi l’impact sur le CPU et le GPU. Alors que les dispositions dans lesquelles les éléments sont positionnés indépendamment les uns des autres utilisent moins de ressources en général, même ce point a cependant subi une amélioration dans iOS 12.

En outre, il a été expliqué que iOS 12 peut réduire la quantité de mémoire qu’une application peut nécessiter pour exécuter une tâche, grâce à la nouvelle fonction Sauvegarde automatique des sauvegardes.

Dans l’exemple présenté sur la scène, une photo et une image en niveaux de gris de même taille sont représentées tout en consommant la même quantité de mémoire, malgré une différence notable de couleur et de nombre de bits utilisés par pixel. Automatic Backing Store définit l’utilisation de la mémoire d’un fichier en fonction de la profondeur du contenu lui-même, plutôt que de traiter tout de la même manière, ce qui réduit potentiellement l’utilisation de la mémoire pour cet élément.

2 Commentaires

  1. Comment sa se fais que sur Geekbench 4 dans la partie « compute » iOS 11 atteint 15.000 + ou – et sous iOS 12 18.000 + ou – ?? (iPhone X)

Partager un commentaire