CURĂȚAREA CLIENTULUI: Am actualizat versiunea Chromium Embedded Framework (CEF)
Ne-am angajat să publicăm actualizări regulate despre lucrările pe care le facem pentru îmbunătățirea performanțelor și a fiabilității clientului LoL. Actualizarea de astăzi este cea de-a noua din serie. (Vezi primul, al doilea, al treilea, al patrulea, al cincilea, al șaselea, al șaptelea și al optulea articol aici!)
Pe scurt: Am actualizat browserul web CEF (Chromium Embedded Framework) de la baza clientului LoL în patch-ul 11.17 și am remarcat o îmbunătățire a utilizării memoriei, a utilizării mai scăzute a procesorului și a altor închideri forțate ale jocului. Acum, ne putem axa pe planificarea actualizărilor mai frecvente pentru a îmbunătăți fiabilitatea și performanța clientului.
Actualizarea Chromium Embedded Framework (CEF)
E un moment mare pentru campania de curățare a clientului! La începutul anului, am hotărât că actualizarea versiunii de client a Chromium Embedded Framework (CEF), browserul web de la baza clientului LoL, la versiunea 91 ar fi cea mai importantă schimbare de făcut pentru îmbunătățirea clientului. (Informativ, clientul a fost actualizat ultima dată în noiembrie 2019 la versiunea 74...) Actualizarea CEF oferă două beneficii majore: primul, îmbunătățește imediat utilizarea memoriei, utilizarea CPU-ului și stabilitatea. Al doilea, ne dă posibilitatea de a îmbunătăți pe viitor clientul pentru că vine cu multe funcții și instrumente (mai multe detalii imediat). Aceste motive au făcut ca actualizarea CEF să fie principala prioritate a anului, așa că suntem bucuroși să vă anunțăm că am lansat cu succes actualizarea la versiunea 91 în patch-ul 11.17 cu rezultate excelente până acum!
Reducerea închiderilor forțate ale clientului
Îmbunătățirea CEF ne-a ajutat să rezolvăm multe închideri forțate ale clientului, iar scopul nostru este de a continua să le rezolvăm pe cele care-i afectează pe jucători cel mai mult. Suntem bucuroși să vedem o scădere a închiderilor forțate cu 61% față de patch-ul 11.16 și o scădere de 38% față de rata medie din 2021 și plănuim să îmbunătățim numerele din ce în ce mai mult. De fapt, statisticile din patch-ul 11.18 arată o altă scădere majoră a închiderilor forțate! Pentru că avem un număr foarte mare de porniri ale clientului la fiecare patch (poate fi de peste 240 de milioane în regiunile noastre Riot), e o victorie semnificativă!
Patch |
Număr de închideri forțate ale jocului |
11.14 |
2.349.865 |
11.15* |
3.686.442 |
11.16 |
3.161.145 |
11.17 |
1.214.155 |
(* 11.15 a avut un ciclu de patch mai îndelungat, care explică valorile mai mari de aici.)
Calculatoarele care rămân fără memorie par să fie principalele vinovate din spatele închiderilor forțate. După o analizare mai amănunțită, am observat că aproape jumătate din închiderile forțate din cauza lipsei de memorie aveau loc pe PC-uri vechi care rulau Windows 7. În timp ce unii jucători se joacă LoL pe PC-uri vechi care rulează Windows 7 (specificațiile minime), vom investiga câți dintre aceștia sunt boți, au copii Windows nelicențiate sau expirate cât și alte circumstanțe care nu sunt reprezentative jucătorilor obișnuiți care chiar joacă LoL.
Utilizarea redusă a memoriei
Am văzut o scădere semnificativă a utilizării memoriei de către partea vizibilă a clientului în timpul unei sesiuni. Partea vizibilă a clientului se referă la elementele vizuale cu care interacționează jucătorii, cum ar fi butoanele, câmpuri de text și aproape tot ce vedeți și pe ce puteți da clic. În regiunile noastre Riot, iată mai multe detalii:
Versiune CEF |
Percentila 20 de jucători (PC-uri mai rapide) |
Percentila 50 de jucători (PC-uri cu specificații medii) |
Percentila 90 de jucători (PC-uri mai lente) |
74 (înainte de patch-ul 11.17) |
359 MB |
597 MB |
1016 MB |
91 (începând cu patch-ul 11.17) |
74 MB |
275 MB |
598 MB |
Îmbunătățire |
285 MB (79%) |
322 MB (54%) |
418 MB (41%) |
Memoria în acest context este ca o atenționare – cu cât ai mai multă disponibilă cu atât calculatorul tău poate să facă mai multe lucruri în același timp sau să se concentreze pe ceea ce făcea deja. Asta înseamnă că vor fi mai puține închideri forțate și mai multă memorie disponibilă care-ți va permite să vezi stream-uri LCS și să intri în lista de așteptare ranked în același timp!
Utilizarea scăzută a CPU-ului
Am observat că, acum, clientul folosește mai puțină putere de procesare a CPU-ului. Iată mai multe detalii despre regiunile Riot:
Versiune CEF |
Percentila 20 de jucători (PC-uri mai rapide) |
Percentila 50 de jucători (PC-uri cu specificații medii) |
Percentila 90 de jucători (PC-uri mai lente) |
74 (înainte de patch-ul 11.17) |
13% |
34% |
83% |
91 (începând cu patch-ul 11.17) |
10% |
22% |
72% |
Scăderea procentului |
23% |
35% |
15% |
Acest lucru îi permite PC-ului tău să lucreze mai puțin pentru rularea clientului, rezultând în procesoare mai reci și mai puțin curent consumat. De exemplu, videoclipurile solicită semnificativ CPU-ul în timp ce clientul LoL nu ar trebui. Pe scurt, mai mult Netflix și Pentakill.
Ce deblochează pentru noi o nouă versiune a CEF?
Aplicații bazate pe Chromium
Aplicațiile bazate pe Chromium au unele dintre cele mai utilizate instrumente și programe din industria dezvoltării de software de azi. Probabil folosești deja o aplicație Chromium ca să citești acest articol, să vorbești pe Discord cu prietenii tăi și să asculți acel playlist cu 10 melodii pe repeat pentru a 1000-a oară. Toate aceste aplicații folosesc Chromium, la fel și clientul. Actualizarea versiunii Chromium Embedded Framework a clientului ne dă acces la noi funcții și îmbunătățiri pentru Chromium.
WebAssembly
Acum să discutăm despre WebAssembly, un format de cod care poate rula instrucțiuni complexe mult mai rapid decât JavaScript, care e folosit de majoritatea aplicațiilor din client (îți amintești de ''aplicațiile Ember'' din blogurile anterioare?). CEF practic emulează un ''mini-calculator'' specializat în cadrul clientului care folosește WebAssembly la procesarea codului într-un mod mai eficient. Pentru că WebAssembly suportă o varietate vastă de limbaje de programare, ceea ce face mai ușoară reutilizarea codului existent, cât și avantajul performanței de a rula procese în ''mini-calculatorul'' specializat (în loc să deschizi o aplicație separată). WebAssembly este adoptat încet de-a lungul internetului, iar suportul din Chromium se îmbunătățește cu fiecare lansare. Având acces la WebAssembly, clientul va fi mai rapid și noi vom avea posibilitatea să facem noi lucruri.
Web Workers
Apoi e Web Workers. În mod tradițional, aplicațiile Chromium rulează simultan, ceea ce înseamnă că procesează pe rând fiecare linie de cod. Asta e ca și cum ai avea un singur angajat pe întreaga linie de producție a unei fabrici, în timp ce Web Worker*S* face cât o echipă astfel încât să rulezi linii multiple de cod în paralel. Un Chat Web Worker se poate ocupa de tot ce înseamnă chat, în timp ce clientul principal se concentrează să te bage într-un meci. Dacă ai un prieten vorbăreț care te roagă să-i dai sugestii pentru un build al lui Teemo, acea conversație nu ți-ar mai încetini restul experienței din client. De asemenea Web Workers va apărea mai rapid în client.
Chiar și fără să scrii un cod nou pentru a exploata noile funcții, actualizarea CEF, singură, a făcut clientul mai rapid mulțumită gestionării mai bune a codului JavaScript deja scris. În timp ce îmbunătățim alte părți ale clientului, ne putem concentra pe metodele care funcționează bine cu îmbunătățirile native.
Alte actualizări
Am făcut și progrese pentru experiența de la finalul meciului (EOG) de la ultima postare. În primul rând, am adăugat o linie de cod pentru a colecta date în legătură cu pagina ''Se așteaptă statistici'' pe care o mai văd jucătorii. Acest lucru ne-a ajutat să identificăm și să îmbunătățim timpul de întârziere deoarece nu ar trebui să fie atât de lung. Am lansat și o soluție în 11,17 care a redus șansa ca acea pagină să se blocheze complet. Am creat soluții adiționale pentru motorul jocului pentru a face și mai rapid ecranul de la finalul meciului în patch-ul 11.19. Nu în ultimul rând, suntem încântați să integrăm provocările și facem tot posibilul ca această funcție să nu aibă impact negativ asupra performanței și stabilității clientului.
Ce urmează
Actualizarea CEF s-a dovedit a fi valoroasă pentru îmbunătățirea clientului, așa că stabilim un program de actualizare mai frecvent (în loc de o dată la 1,5 ani, haha). Cât pentru restul anului 2021, vom continua să punem în față stabilitatea clientului, să remediem ecranul de la finalul meciului împreună cu echipa care se ocupă de provocări, să eliminăm bug-uri extrem de frustrante și să îmbunătățim liniile noastre de cod pentru a îmbunătăți experiența jucătorilor. Vă mulțumim că ați fost alături de noi pentru a sărbători acest pas mare al campaniei de curățare a clientului! Ne vedem data viitoare.