Résultats de l'optimisation de Chromium réalisés par le projet RenderingNG

Les développeurs de Chromium ont tiré les premiers enseignements du projet RenderingNG, lancé il y a 8 ans, qui vise à améliorer en permanence les performances, la fiabilité et l'évolutivité de Chrome.

Par exemple, les optimisations ajoutĂ©es dans la version Chrome 94 par rapport Ă  Chrome 93 ont permis de rĂ©duire de 8 % les dĂ©lais de traitement des pages et d'augmenter de 0,5 % l'autonomie de la batterie. Étant donnĂ© la taille de la base d'utilisateurs de Chrome, ces rĂ©sultats se traduisent Ă  l'Ă©chelle mondiale par une Ă©conomie de plus de 1400 annĂ©es de temps processeur chaque jour. ComparĂ© aux versions des annĂ©es prĂ©cĂ©dentes, Chrome moderne rend les graphiques plus de 150 % plus rapidement et est 6 fois moins sujet aux crashes des pilotes GPU sur du matĂ©riel problĂ©matique.

Parmi les mĂ©thodes mises en Ɠuvre pour amĂ©liorer les performances, on note la parallĂ©lisation des opĂ©rations de rasterisation de diffĂ©rents pixels du cĂŽtĂ© GPU et la distribution plus active des tĂąches sur diffĂ©rents cƓurs CPU (exĂ©cution de JavaScript, gestion du dĂ©filement des pages, dĂ©codage vidĂ©o et images, prĂ©-rendu du contenu). Un facteur limitant lors de la parallĂ©lisation active est l'augmentation de la charge sur le CPU, qui se manifeste par une montĂ©e en tempĂ©rature et une augmentation de la consommation d'Ă©nergie. Il est donc crucial d'atteindre un Ă©quilibre optimal entre performance et consommation d'Ă©nergie. Par exemple, lorsqu'il fonctionne sur batterie, on peut sacrifier la vitesse de rendu, mais il ne faut pas sacrifier le traitement du dĂ©filement dans un thread sĂ©parĂ©, car une diminution de la rĂ©activitĂ© de l'interface sera perceptible par l'utilisateur.

Les technologies mises en Ɠuvre dans le cadre du projet RenderingNG changent totalement l'approche du compositing et permettent d'utiliser de maniĂšre adaptative diffĂ©rentes technologies d'optimisation des calculs sur GPU et CPU en fonction des parties spĂ©cifiques des pages, tenant compte de particularitĂ©s telles que la rĂ©solution et le taux de rafraĂźchissement de l'Ă©cran, ainsi que la prĂ©sence dans le systĂšme de support d'API graphiques avancĂ©es comme Vulkan, D3D12 et Metal. Parmi les optimisations Ă©voquĂ©es, on trouve l'utilisation active du caching des textures GPU et des rĂ©sultats du rendu de parties de pages web, ainsi que la prise en compte lors du rendu uniquement des zones de la page visibles pour l'utilisateur (il n'est pas utile de rendre des parties de page recouvertes par d'autres contenus).

Un élément clé de RenderingNG est également l'isolation des performances lors du traitement de différentes parties des pages, par exemple, pour l'isolation des calculs liés aux publicités dans des blocs iframe, l'affichage d'animations, la lecture de son et de vidéo, le défilement de contenu et l'exécution de JavaScript.

Résultats de l'optimisation de Chromium réalisés par le projet RenderingNG

Techniques d'optimisation mises en Ɠuvre :

  • Dans Chrome 94, un mĂ©canisme CompositeAfterPaint a Ă©tĂ© proposĂ©, permettant le composition des parties dessinĂ©es sĂ©parĂ©ment des pages web et permettant de moduler dynamiquement la charge sur le GPU. Selon les donnĂ©es collectĂ©es par les utilisateurs via la tĂ©lĂ©mĂ©trie, l'application de ce nouveau systĂšme de composition a permis de rĂ©duire la latence lors du dĂ©filement de 8 %, d'amĂ©liorer la rĂ©activitĂ© des interactions utilisateur de 3 %, d'accĂ©lĂ©rer le rendu de 3 %, de rĂ©duire la consommation de mĂ©moire GPU de 3 % et d'augmenter l'autonomie de 0,5 %.
  • GPU Raster — mĂ©canisme de rasterisation cĂŽtĂ© GPU, a Ă©tĂ© mis en Ɠuvre pour toutes les plateformes en 2020 et a permis d'accĂ©lĂ©rer le passage des tests MotionMark en moyenne de 37 %, et les catĂ©gories liĂ©es au HTML de 150 %. Cette annĂ©e, GPU Raster a Ă©tĂ© complĂ©tĂ© par la possibilitĂ© d'utiliser l'accĂ©lĂ©ration cĂŽtĂ© GPU pour le rendu des Ă©lĂ©ments Canvas, ce qui a conduit Ă  une augmentation de 1000 % pour le rendu des contours et un passage des tests MotionMark 1.2 de 130 %.
  • LayoutNG — une refonte complĂšte des algorithmes de mise en page des Ă©lĂ©ments des pages, visant Ă  amĂ©liorer la fiabilitĂ© et la prĂ©visibilitĂ©. Le projet est prĂ©vu pour ĂȘtre mis Ă  la disposition des utilisateurs cette annĂ©e.
  • BlinkNG — refactorisation et nettoyage du moteur Blink avec sĂ©paration des opĂ©rations de rendu en phases distinctes pour amĂ©liorer l'efficacitĂ© du cache et simplifier le rendu diffĂ©rĂ© tenant compte de la visibilitĂ© des objets dans la fenĂȘtre. Le travail doit ĂȘtre achevĂ© cette annĂ©e.
  • DĂ©tacher les gestionnaires de dĂ©filement, d'animation et de dĂ©codage d'images dans des threads distincts. Le projet est en dĂ©veloppement depuis 2011 et a atteint cette annĂ©e la possibilitĂ© de dĂ©tachĂ© les transformations CSS animĂ©es et l'animation SVG dans des threads sĂ©parĂ©s.
  • VideoNG — un moteur efficace et fiable pour la lecture de vidĂ©os sur les pages web. Cette annĂ©e, la possibilitĂ© d'afficher du contenu protĂ©gĂ© en rĂ©solution 4K a Ă©tĂ© rĂ©alisĂ©e. PrĂ©cĂ©demment, le support HDR a Ă©tĂ© ajoutĂ©.
  • Viz — processus distincts pour la rasterisation (OOP-R — Rasterisation hors processus) et le rendu (OOP-D — Compositieur d'affichage hors processus), sĂ©parant le rendu de l'interface du navigateur du rendu du contenu des pages. Le projet dĂ©veloppe Ă©galement le processus SkiaRenderer, utilisant des API graphiques spĂ©cifiques Ă  diffĂ©rentes plateformes (Vulkan, D3D12, Metal). Ce changement a permis de rĂ©duire par six le nombre de plantages dus Ă  des problĂšmes dans les pilotes graphiques.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster