Les développeurs de Chromium ont publié les résultats de l'optimisation du projet RenderingNG

Les développeurs de Chrome dévoilés récemment les premiers résultats du projet RenderingNG (publié il y a 8 ans) qui est destiné à faire un travail continu pour augmenter les performances, la fiabilité et l'extensibilité de Chrome.

Les technologies mises en œuvre au sein du projet RenderingNG changent complètement l'approche de la composition et permettre l'utilisation adaptative de différentes technologies pour optimiser les calculs sur le GPU et le CPU par rapport à des parties individuelles des pages, en tenant compte de caractéristiques telles que la résolution et le taux de rafraîchissement de l'écran, ainsi que la présence de la prise en charge des API graphiques avancées dans le tels que Vulkan, D3D12 et Metal.

Parmi les méthodes mises en œuvre qui permettent d'atteindre des gains de performances, la parallélisation des opérations de rastérisation des différents pixels côté GPU et une séparation plus active des handlers sur les différents cœurs CPU (exécution JavaScript, traitement de défilement de page, décodage vidéo et image, proactif rendu du contenu) sont notés.

Le facteur limitant pour la parallélisation active est l'augmentation de la charge sur le CPU, qui se traduit par l'augmentation de la température et l'augmentation de la consommation d'énergie, il est donc important d'atteindre un équilibre optimal entre les performances et la consommation d'énergie. Par exemple, lorsque vous fonctionnez sur batterie, vous pouvez sacrifier la vitesse de rendu, mais vous ne pouvez pas sacrifier le traitement du défilement dans un thread séparé, car la diminution de la réactivité de l'interface sera perceptible par l'utilisateur.

Par exemple, les optimisations ajoutées dans la version Chrome 94 par rapport à Chrome 93 ont entraîné une amélioration de 8 % de la latence des pages et une augmentation de 0,5 % de la durée de vie de la batterie. Sur la base de la taille de la base d'utilisateurs de Chrome, ces chiffres se traduisent globalement par des économies de plus de 1.400 150 ans de temps CPU chaque jour. Par rapport aux versions de l'année précédente, Chrome moderne rend les graphiques plus rapides de plus de 6 % et est XNUMX fois moins sujet aux défaillances du pilote GPU sur le matériel problématique.

Comme exemples d'optimisations, l'utilisation active de la mise en cache des textures GPU et les résultats du rendu de parties de pages Web sont mentionnés, ainsi que la prise en compte lors du rendu uniquement de la zone de la page visible pour l'utilisateur (cela n'a pas de sens pour rendre des parties de la page qui sont couvertes par d'autres contenus).

Un élément important de RenderingNG est également l'isolement des performances lors du rendu de différentes parties des pagesPar exemple, pour isoler les calculs associés à l'affichage des publicités dans les iframes, au rendu des animations, à la lecture audio et vidéo, au défilement du contenu et à l'exécution de JavaScript.

Parmi les techniques d'optimisation mises en œuvre, sont mentionnées :

  • Chrome 94 dispose du moteur CompositeAfterPaint, qui compose des portions de pages Web rendues séparément et met à l'échelle dynamiquement la charge du GPU. Selon les données reçues de l'utilisateur résultant de la collecte de télémétrie, l'application d'un nouveau système de composition est possible pour réduire le délai lors du défilement à 8%, augmenter la réactivité de l'interaction utilisateur à 3%, augmenter la vitesse de rendu de 3% et Réduit la consommation de mémoire du GPU de 3 % et prolonge la durée de vie de la batterie de 0,5 %.
  • Raster GPU : Mécanisme de rastérisation du côté du GPU, il a été intégré à toutes les plateformes en 2020 et a permis d'accélérer le passage du test MotionMark de 37% en moyenne, et les catégories associées au HTML, de 150%.
  • Mise en pageNG : est un examen complet des algorithmes de conception d'éléments de page destinés à améliorer la fiabilité et la prévisibilité. Le projet devrait toucher les utilisateurs cette année.
  • BlinkNG - Refactorisation et nettoyage du moteur Blink, en divisant les opérations de rendu en phases distinctes pour améliorer l'efficacité de la mise en cache et simplifier le rendu paresseux, en tenant compte de la visibilité des objets dans la fenêtre.
  • Transfert des contrôleurs de déplacement, animation et décodage des images vers des threads séparés. Le projet est en développement depuis 2011, et cette année, il a atteint la possibilité de déplacer des transformations CSS animées et des animations SVG dans des flux séparés.
  • VidéoNG : c'est un moteur efficace et fiable pour lire des vidéos sur des pages Web. Cette année, la possibilité d'afficher du contenu protégé en résolution 4K a été mise en œuvre. Le support HDR a été ajouté plus tôt.
  • Affichage: des processus séparés pour la rastérisation et le rendu, séparant le rendu de l'interface du navigateur du rendu du contenu de la page.

source: https://blog.chromium.org


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.