AUFRÄUMARBEITEN IM CLIENT: Das neue Chromium Embedded Framework (CEF) ist live

Wir haben die neue Version des CEF veröffentlicht und die Ergebnisse sehen gut aus!

Wir haben angekündigt, dass wir über Updates zu den Arbeiten an der Verbesserung des League-Clients sprechen werden. Beim heutigen Artikel handelt es sich um den neunten Beitrag der Reihe. (Hier kannst du dir den ersten, zweiten, dritten, vierten, fünften, sechsten, siebten und achten Beitrag ansehen!)

Kurz und bündig: Wir haben mit Patch 11.17 den CEF (Chromium Embedded Framework)-Webbrowser aktualisiert, auf dem der League-Client basiert, und konnten dadurch signifikante Verbesserungen bei der Speichernutzung erzielen und sowohl die CPU-Auslastung als auch die Zahl der Abstürze verringern. Dadurch können wir jetzt häufigere Aktualisierungen vornehmen, um die Stabilität und Leistung des Clients zu verbessern!

Die Aktualisierung des Chromium Embedded Framework (CEF)

Die Aufräumarbeiten im Client haben einen Meilenstein erreicht! Zu Beginn des Jahres haben wir verkündet, dass die Aktualisierung des Chromium Embedded Framework dabei handelt es sich um den Web-Browser, auf dem die Architektur des League-Clients basiert – auf Version 91 wahrscheinlich den größten Einfluss auf den Client haben würde. (Zuletzt wurde das CEF im November 2019 auf Version 74 aktualisiert …) Die Aktualisierung des CEF hat zwei Vorteile: Einerseits verbessern sich dadurch sofort die Speichernutzung, die CPU-Auslastung und die Stabilität. Und andererseits erhalten wir dank der neuen Funktionen und Werkzeuge (mehr dazu später) die Möglichkeit, auch in Zukunft jede Menge Verbesserungen vorzunehmen. Diese Gründe haben die Aktualisierung des CEF für uns zu einer der Prioritäten des Jahres gemacht und wir freuen uns sehr, verkünden zu können, dass wir das Update auf Version 91 mit Patch 11.17 veröffentlicht haben – mit bisher großartigen Ergebnissen!

Weniger Client-Abstürze

Durch die Aktualisierung des CEF können wir viele Gründe für Client-Abstürze beseitigen und es ist unser Ziel, auch in Zukunft diejenigen zu beseitigen, die die Spieler am stärksten beeinträchtigen. Wir freuen uns sehr, dass die Anzahl an Abstürzen seit Patch 11.16 um 61 % und im Jahr 2021 bisher um 38 % abgenommen hat, und planen, diesen Trend fortzusetzen. Erste Daten von Patch 11.18 zeigen sogar eine weitere Verringerung der Abstürze! Das ist ein großer Erfolg, da unser Client im Zuge jedes Patches bis zu 240 Millionen Male in unseren Riot-Regionen gestartet wird!

   

Patch

Anzahl der Abstürze

11.14

2.349.865

11.15*

3.686.442

11.16

3.161.145

11.17

1.214.155

(*11.15 hatte einen längeren Patch-Zyklus, was die höhere Zahl erklärt.)

Die Hauptursache für die verbleibenden Abstürze scheint ein Speicherproblem zu sein. Nachdem wir uns dieses Problem genauer angesehen hatten, ist uns aufgefallen, dass nahezu die Hälfte aller Abstürze durch volle Speicher auf alte PCs zurückzuführen sind, die mit Windows 7 betrieben werden. Obwohl es weltweit einige Spieler gibt, die League auf PCs mit Windows 7 spielen (unsere aktuelle Mindestanforderung), untersuchen wir, in wie vielen dieser Fälle es sich um Bots, nicht lizenzierte/veraltete Versionen von Windows oder andere Umstände handelt, die für unsere Spielerschaft nicht repräsentativ sind.

Niedrigere Speichernutzung

Die Speichernutzung des Front-Ends des Clients im Verlauf einer Sitzung hat sich stark verringert. Beim Front-End des Clients handelt es sich um die visuellen Elemente, mit denen die Spieler agieren (Schaltflächen, Textfelder und so gut wie alles andere, das man anklicken kann). Hier ist eine Übersicht für unsere Riot-Regionen:

CEF-Version

20. Perzentil der Spieler (schnellere Rechner)

50. Perzentil der Spieler (mittelschnelle Rechner)

90. Perzentil der Spieler (langsamere Rechner)

74 (vor Patch 11.17)

359 MB

597 MB

1016 MB

91 (seit Patch 11.17)

74 MB

275 MB

598 MB

Verbesserung

285 MB (79 %)

322 MB (54 %)

418 MB (41 %)

Der Speicher verhält sich in diesem Zusammenhang wie Aufmerksamkeit – je mehr deinem Rechner zur Verfügung steht, desto besser kann er verschiedene Anwendungen ausführen oder sich auf das konzentrieren, womit er gerade beschäftigt ist. Dadurch verringert sich die Zahl der Client-Abstürze und dir steht mehr Speicher zur Verfügung, um dich gleichzeitig in die Warteschlange einzureihen und dir Übertragungen der LEC anzuschauen!

Geringere CPU-Auslastung

Die Auslastung der CPU ist ebenfalls gesunken. Hier ist die Übersicht für unsere Riot-Regionen:

CEF-Version

20. Perzentil der Spieler (schnellere Rechner)

50. Perzentil der Spieler (mittelschnelle Rechner)

90. Perzentil der Spieler (langsamere Rechner)

74 (vor Patch 11.17)

13 %

34 %

83 %

91 (seit Patch 11.17)

10 %

22 %

72 %

Prozentueller Nachlass der Auslastung

23 %

35 %

15 %

Das bedeutet, dass dein Computer nicht mehr so hart arbeiten muss, um den Client auszuführen, wodurch die Temperatur des Prozessors und der Stromverbrauch sinken. Videos verlangen dem Prozessor beispielsweise einiges ab, während das der League-Client nicht tun sollte. Du solltest dir in Zukunft also mehr Netflix und Pentakill anschauen können.

Welche Vorteile bietet uns eine neuere CEF-Version?

Anwendungen, die auf Chromium basieren

Anwendungen, die auf Chromium basieren, gehören heute zu den am schnellsten wachsenden Werkzeugen und Programmen im Bereich der Software-Entwicklung. Du verwendest wahrscheinlich schon eine Chromium-Anwendung, um diesen Artikel zu lesen, über Discord mit Freunden zu chatten und dir deine Wiedergabeliste aus 10 Liedern zum 100. Mal anzuhören. All diese Anwendungen nutzen Chromium, und der Client tut das ebenfalls. Durch die Aktualisierung der Version des Chromium Embedded Framework des Clients erhalten wir Zugang zu den neuesten Funktionen und Verbesserungen.

WebAssembly

Als Nächstes sprechen wir über WebAssembly, ein Code-Format, das komplexe Anweisungen wesentlich schneller ausführen kann als JavaScript, auf dem aktuell noch viele Anwendungen innerhalb des Clients basieren (erinnerst du dich noch an die „Ember-Anwendungen“ der vorherigen Beiträge?). CEF bildet im Grunde einen speziellen „Mini-Computer“ innerhalb des Clients nach, der WebAssembly nutzt, um den Code effizienter zu verarbeiten. Da WebAssembly eine Reihe von Programmiersprachen unterstützt, wird es für uns einfacher, bestehenden Code erneut zu benutzen, während wir gleichzeitig die Vorteile des „Mini-Computers“ nutzen können (anstatt eine separate Anwendung starten zu müssen). WebAssembly wird im Web langsam immer beliebter und der Support in Chromium verbessert sich mit jeder neuen Version. Durch den Zugang zu WebAssembly wird der Client schneller und wir bekommen die Möglichkeit, Dinge zu tun, die bisher nicht möglich waren.

Web Worker

Dann gibt es noch Web Worker. Historisch gesehen werden Chromium-Anwendungen synchron ausgeführt, was bedeutet, dass immer nur eine Codezeile verarbeitet wird. Das wäre in etwa so, als würde in der gesamten Fabrik nur ein Angestellter arbeiten … Bei den Web Workern handelt es sich hingegen um ein gesamtes Team, das mehrere Codezeilen gleichzeitig ausführen kann. Ein Chat-Web-Worker kann sich beispielsweise um alles rund um den Chat kümmern, während sich der Haupt-Client darauf konzentriert, ein Spiel für dich zu finden. Du müsstest dir also keine Sorgen mehr darüber machen, dass ein besonders gesprächiger Freund mit Fragen über Teemo den Rest deiner Client-Erfahrung beeinträchtigt. Außerdem machen die Web Worker den Client schneller.

Die Aktualisierung des CEF allein hat den Client auch ohne zusätzliche Codezeilen, die diese neuen Funktionen nutzen können, schneller gemacht, da das bereits bestehende JavaScript besser verarbeitet werden kann. Während wir andere Bereiche des Clients verbessern, können wir uns auf Methoden konzentrieren, die gut mit nativen Leistungsverbesserungen harmonieren.

Sonstige Aktualisierungen

Seit unserem letzten Beitrag haben wir auch bei der Spielzusammenfassung Fortschritte gemacht. Zuerst haben wir einige Codezeilen implementiert, die Daten darüber sammeln, was genau während der „Statistik wird erstellt“-Anzeige geschieht, die bei so vielen Spielern immer noch erscheint. Dadurch konnten wir Probleme identifizieren und die Verzögerung verkürzen, die wirklich nicht so lange dauern sollte, wie das aktuell der Fall ist. Außerdem haben wir mit Patch 11.17 eine Fehlerbehebung veröffentlicht, die die Wahrscheinlichkeit verringern sollte, dass diese Seite komplett einfriert. Mit Patch 11.19 werden wir weitere Fehlerbehebungen veröffentlichen, die die Spielzusammenfassung noch schneller machen sollten. Zu guter Letzt freuen wir uns auf die Veröffentlichung der Herausforderungen und geben unser Bestes, um sicherzustellen, dass diese neue Funktion die Leistung und Verlässlichkeit des Clients nicht einschränkt.

Wie es weitergeht

Die Aktualisierung des CEF hat sich als äußerst wertvolle Verbesserung des Clients erwiesen, weshalb wir in Zukunft häufiger Aktualisierungen dieser Art vornehmen werden (anstatt wieder 1,5 Jahre zu warten, lolz). Was den Rest des Jahres 2021 angeht, so werden wir weiterhin die Verlässlichkeit des Clients priorisieren, die Spielzusammenfassung mit dem Team für die Herausforderungen überarbeiten, Fehler beheben, die für jede Menge Frustration sorgen, und den Code verbessern, um für eine rundere Erfahrung zu sorgen. Danke, dass du diesen großen Meilenstein der Aufräumarbeiten im Client mit uns gefeiert hast! Bis zum nächsten Beitrag.