LoLTracker

 

Nettoyage du client : Nous avons lancé la mise à jour du Chromium Embedded Framework (CEF)

Client_Blog_Header_v2

Nous vous avons promis de vous parler régulièrement de notre travail pour améliorer la performance et la fiabilité du client de League of Legends. Aujourd'hui, il s'agit du neuvième article de la série. (Voir les premier, deuxième, troisième, quatrième, cinquième, sixième, septième et huitième ici !)

Pour résumer, nous avons mis à jour le navigateur Internet CEF (Chromium Embedded Framework) qui est au cœur du client League dans le patch 11.17, et avons constaté une utilisation mémoire largement améliorée, une diminution de l'utilisation du processeur et une réduction des plantages. Nous pouvons désormais nous concentrer sur des mises à jour plus fréquentes pour améliorer la fiabilité et la performance du client !

Mise à jour du Chromium Embedded Framework (CEF)

C'est un grand moment pour la campagne de nettoyage du client ! Au début de l'année, nous avons déterminé que mettre à jour la version du client du Chromium Embedded Framework (CEF), c'est-à-dire le navigateur internet au cœur de l'architecture du client de LoL, vers la version 91 serait le plus efficace pour améliorer le client. (Pour donner le contexte, sa dernière mise à jour remonte à novembre 2019, avec la version 74…) L'avantage de la mise à jour du CEF est double : elle améliore immédiatement l'utilisation de la mémoire et du processeur, ainsi que la stabilité. Ensuite, elle nous permet d'autres améliorations, puisqu'elle apporte de nouveaux outils et de nouvelles fonctionnalités (nous allons y revenir). Ces raisons ont fait de la mise à jour du CEF notre propriété de l'année, et nous sommes heureux de vous apprendre que nous venons de passer à la version 91 avec le patch 11.17, avec de grands résultats jusqu'à maintenant !

Moins de plantages du client

La mise à jour du CEF nous a permis de régler de nombreux plantages du client, et notre objectif est de continuer de régler ceux qui affectent le plus souvent les joueurs. Nous sommes ravis de constater une baisse de 61 % des plantages depuis le patch 11.16, et une baisse de 38 % par rapport à la moyenne de 2021, et nous comptons poursuivre dans cette voie. En fait, les premières données du patch 11.18 indiquent une nouvelle grosse baisse des plantages ! C'est une grande victoire, car nous avons un grand nombre de démarrages de clients lors des patchs (cela peut atteindre les 240 millions dans nos régions Riot !)

Patch
Nombre de plantages
11.14
2 349 865
11.15*
3 686 442
11.16
3 161 145
11.17
1 214 155

(* 11.15 avait un patch de cycle plus long, ce qui explique ce chiffre important.)

Le coupable principal derrière les plantages restants semble être les ordinateurs dont la mémoire est saturée. Après avoir creusé la question, nous avons constaté que près de la moitié de ces plantages de mémoire avaient lieu sur de vieux PC sous Windows 7. Certains joueurs jouent effectivement à League sur de vieux PC sous Windows 7 (notre configuration minimale actuelle), mais nous allons enquêter pour savoir combien de ces cas sont des bots, des copies de Windows sans licence ou expirées, ou autres circonstances qui ne sont pas représentatives de vrais joueurs jouant à League de la manière attendue.

Réduction d'utilisation mémoire

Nous avons constaté une baisse significative de l'utilisation de mémoire par le client en façade au cours d'une session. La façade du client concerne les éléments visuels avec lesquels les joueurs interagissent : boutons, champs de texte et à peu près tout ce que vous voyez et pouvez cliquer. Dans nos régions Riot, voici un récapitulatif :

Version de CEF
20e centile des joueurs (machines les plus rapides)
50e centile des joueurs (machines moyennes)
90e centile des joueurs (machines plus lentes)
74 (pré-patch 11.17)
359 Mo
597 Mo
1016 Mo
91 (patch 11.17+)
74 Mo
275 Mo
598 Mo
Amélioration
285 Mo (79 %)
322 Mo (54 %)
418 Mo (41 %)

La mémoire dans ce contexte est comme l'attention. Plus votre ordinateur en a, plus il peut en consacrer à des tâches multiples ou à ce qu'il fait déjà. Cela entraîne moins de plantages client et plus de mémoire disponible pour regarder les streams LCS et vous mettre en file d'attente classée en même temps !

Utilisation de processeur réduite

Nous avons aussi constaté une diminution de l'utilisation de la puissance du processeur par le client. Voici un récapitulatif dans nos régions Riot :

Version de CEF
20e centile des joueurs (machines les plus rapides)
50e centile des joueurs (machines moyennes)
90e centile des joueurs (machines plus lentes)
74 (pré-patch 11.17)
13 %
34 %
83 %
91 (patch 11.17+)
10 %
22 %
72 %
Pourcentage de baisse
23 %
35 %
15 %

Cela signifie que votre ordinateur a moins d'efforts à faire pour faire tourner le client, ce qui permet au processeur de rester plus frais et de consommer moins d'énergie. Par exemple, les vidéos sont très fatigantes pour le processeur, tandis que le client de League ne devrait pas l'être. Bref, plus de Netflix et Pentakill.

Que nous permettra cette nouvelle version du CEF ?

Des applis sous Chromium

Les applis sous Chromium sont parmi les outils et programmes les plus en vue dans le développement de logiciels de nos jours. Vous utilisez certainement déjà une appli sous Chromium pour lire cet article, pour discuter sous Discord avec vos amis et pour écouter votre playlist des 10 mêmes chansons en boucle pour la 100e fois. Chacune de ces applications utilise Chromium, et notre client aussi. La mise à jour de la version du Chromium Embedded Framework nous donne accès aux nouvelles fonctionnalités et aux améliorations de Chromium.

WebAssembly

Parlons à présent de WebAssembly, un format de code capable de gérer des instructions complexes bien plus rapidement que le JavaScript de base, qui est encore ce que de nombreuses applications du client utilisent encore (souvenez-vous des « applications Ember » dans nos blogs précédents). Le CEF émule en somme un « mini-ordinateur » spécialisé dans le client qui utilise WebAssembly pour traiter le code de manière plus efficace. Parce que WebAssembly prend en charge une large variété de langage de programmation, il facilite la réutilisation des codes existants, tout en donnant un avantage de performance lié à des processus de traitement de ce « mini-ordinateur » spécialisé (au lieu de lancer une application séparée). Tout Internet est peu à peu en train d'adopter WebAssembly, et sa prise en charge dans Chromium s'améliore à chaque mise à jour. L'accès à WebAssembly rendra le client plus rapide et permettra des choses jusqu'alors impossibles.

Web Workers

Ensuite, il y a Web Workers. Historiquement, les applications de Chromium tournent de manière synchrone, et traitent leurs processus une ligne de code après l'autre. C'est comme si vous aviez un seul ouvrier sur toute la chaîne de construction. Tandis que Web Worker*S* agrandit l'équipe pour traiter plusieurs lignes de code en parallèle. Un Web Worker de messagerie pourra gérer tout ce qui concerne la messagerie, tandis que le client se concentrera sur votre lancement de partie. Donc, si vous avez un ami particulièrement bavard qui vous demande des suggestions de build pour Teemo, cette conversation ne ralentira plus votre client. Les Web Workers aussi accéléreront le client.

Même sans écrire de nouveau code pour profiter de ces nouveautés, la simple mise à jour du CEF a déjà accéléré le client grâce à une meilleure prise en charge du JavaScript que nous avons déjà écrit. À mesure que nous améliorerons d'autres domaines du client, nous pourrons nous concentrer sur les méthodes qui fonctionnent bien avec les améliorations de performance natives.

Autres mises à jour

Nous avons aussi fait des progrès sur l'expérience de fin de partie depuis notre dernier article de blog. Pour commencer, nous avons ajouté du code pour recueillir des données sur ce qui se passe pendant la page bloquée « En attente des stats » que les joueurs continuent de rencontrer. Cela nous a aidés à identifier et améliorer le délai, puisqu'elle ne devrait pas être aussi longue qu'à l'heure actuelle. Nous avons aussi déployé un correctif dans le patch 11.17 qui réduira les chances que cette page plante complètement. D'autres correctifs du moteur de jeu ont été ajoutés pour accélérer encore la fin de partie dans le patch 11.19. Et enfin, nous avons le plaisir d'intégrer les Défis et faisons tout notre possible pour que cette nouvelle fonctionnalité ne vienne pas impacter la performance ou la fiabilité du client.

Et ensuite ?

Notre mise à jour du CEF a été très utile pour améliorer le client, aussi allons-nous établir un programme de mises à jour plus fréquentes (au lieu d'une fois tous les 1,5 an, lolz). Pour la fin 2021, nous allons continuer de traiter en priorité la fiabilité du client, d'arranger la fin de partie avec l'équipe des Défis, de régler les bugs les plus frustrants, et de continuer d'améliorer notre code pour améliorer votre expérience. Merci de nous avoir accompagnés pour fêter ce cap colossal dans notre Campagne de nettoyage du client ! À la prochaine.

Preview de skins : Halloween 2021
/dev : Gestion des joueurs AFK
 
You must login to post a comment.
People in conversation:
Loading comment... The comment will be refreshed after 00:00.
  • This commment is unpublished.
    Philidia
    • Administrateur du site
    · 3 years ago
    Ce genre d'article me laisse... Perplexe. J'aimerais bien votre avis, j'ai le sentiment de voir des mecs qui bossaient une heure par jour se mettre à bosser deux heures par jour et se lancer des fleurs. J'veux dire, la version du CEF avait 2 années de retard, et elle est finalement à jour au bout du 9ème article de ce genre.

    Je sais que c'est pour la transparence, mais on dirait au mieux des amateurs, au pire des branleurs.
    • This commment is unpublished.
      Denwop · 3 years ago
      Plutôt d'accord, ils essaient de justifier leur salaire.
    • This commment is unpublished.
      Mentes · 3 years ago
      J'ai pas d'expérience professionnel en informatique, juste des études et effectivement ça parait vraiment pas fameux.


      Franchement c'est comme lorsque je pipeautait lors d'un projet à rendre. On enrobe le tout de plein d'information bateau pour maquiller le massacre. Et honnêtement je ne pense jamais avoir convaincu qui que ce soit que j'avais fait du bon boulot, c'était juste pour garder la face et mettre en avant le peu de chose que j'avais fait/réussis. Et je comprend


      Soyons honnête le client est sortis avec de moins bonnes performances et plus de bug que le jeu en lui même. C'est quoi ce délire ...

      Cet article est sans doute le plus positif, mais c'est si peu si tard. Globalement je pense que c'est surtout une question de com, pour montrer qu'il en ont pas rien à foutre. (Même si clairement on sent que les gens avec une vielle config sous w7 ils en ont rien à foutre).
      • This commment is unpublished.
        Bubu · 3 years ago
        Moi je vois surtout ça comme un devoir qu'on a demandé aux équipes chargées de s'occuper de ce problème pour justement essayer de calmer les foules sur les problèmes du client. Vu que je suis pas spécialiste du domaine je vais pas essayer de savoir si ce qu'ils font est compliqué/difficile ou non mais entre ça et l'annonce du nouveau client Riot...je me dis que chez eux les equipes doivent vraiment pas être sur la même longueur d'onde et sur le même pied d'égalité en terme de traitement

        D'ailleurs si ça se trouve...les personnes qui ont rédigé ça sont en fait...2 et bossent partiellemnt sur la chose ce qui explique leur côté "amateur". Après c'mon préjugé type "ba sé la fôt dé désideur" qui me fait penser ça je leur laisse le bénéfice du doute parce qu'ils ont déja plus ou moins explicité que leur focntionnement en interne pouvait être chaothique
    • This commment is unpublished.
      Monsieur · 3 years ago
      Je trouve l'article intéressant car ils montrent le suivi maintenant qu'ils s'occupent enfin de leur client.


      Cela étant dit, vu a la vitesse où ça avance je me dit : soit ils sont très peu a bosser dessus (pas de source de revenus directe), soit ils partaient de tellement loin que ça rame encore, soit ils ont les meilleurs incompétents sur cette tâche...

      Perso je n'ai plus de plantage du client depuis un moment, j'ai encore de grosses latences en fin de partie mais le reste tourne mieux voir bien. Je suis donc satisfait. Il faut dire que vu que je n'attends pas grand chose, c'est dur d'être insatisfait
   facebook   Discord2   rss   logo twitter   

Derniers articles

LoLTracker ferme ses portes après plus de 10 ans de bons et loyaux services !
Thèmes abordés : Fermeture imminente du site, Project L, pause de fin d'année chez Riot, Riot mobile, et bien plus !...
Analysons les problèmes actuels de Yuumi et notre manière d'aborder sa refonte.
Une nouvelle mise à jour a eu lieu sur le PBE, apportant de l'équilibrage
C'est le dernier patch de l'année, la 12.23B est là !