《LOL》客戶端更新日志報(bào)告:2021進(jìn)度與后續(xù)計(jì)劃公布
《英雄聯(lián)盟》官方近日發(fā)布了客戶端更新的日志報(bào)告。官方表示客戶端Chromium Embedded Framework,是聯(lián)盟客戶端架構(gòu)的核心網(wǎng)絡(luò)瀏覽器的版本更新,這是今年的重點(diǎn)項(xiàng)目。目前官方正重新審視比賽結(jié)束(EOG)頁(yè)面,也在著手解決進(jìn)入英雄選擇頁(yè)面延遲問(wèn)題。

我們承諾不定期分享聯(lián)盟客戶端性能與可靠性更新工作的進(jìn)展。
概要:2021年第一季度,我們開(kāi)啟了升級(jí)Chromium Embedded Framework(CEF)的道路。目前仍有部分工作有待完成,預(yù)計(jì)在第二季度末可以完成新版CEF,為玩家?guī)?lái)更多便利。
升級(jí)Chromium Embedded Framework(CEF)
上次我們提到過(guò),近期的重大項(xiàng)目之一,是客戶端Chromium Embedded Framework(CEF),也就是聯(lián)盟客戶端架構(gòu)的核心網(wǎng)絡(luò)瀏覽器的版本更新。坦白而言,上次我們低估了這項(xiàng)工作的重要性。無(wú)論從直接受益,還是為其他優(yōu)化賦能的角度來(lái)看,CEF升級(jí)都是影響力最大的一項(xiàng)客戶端優(yōu)化。
CEF上次升級(jí)是在2019年11月(版本74),而撰寫(xiě)本文時(shí),最新的版本是CEF 90。CEF升級(jí)(目標(biāo)是CEF 90)將帶來(lái)以下好處:
● 減少客戶端崩潰
○ 過(guò)時(shí)的CEF版本在部分硬件上表現(xiàn)不佳。早期數(shù)據(jù)表明,大部分崩潰都是由CEF版本過(guò)時(shí)造成的。我們堅(jiān)信升級(jí)后,玩家遭遇的崩潰次數(shù)會(huì)降低。
● 兼容性優(yōu)化
○ CEF團(tuán)隊(duì)在大量硬件組合上對(duì)新版本進(jìn)行了詳細(xì)測(cè)試。聯(lián)盟客戶端可以免費(fèi)享受這些測(cè)試的成果。
● WebSocket性能加速
○ 聯(lián)盟客戶端包含兩大部分:“前端”部分與用戶進(jìn)行視覺(jué)交互,“后臺(tái)”部分規(guī)模小得多,負(fù)責(zé)后臺(tái)運(yùn)行、從服務(wù)器調(diào)取數(shù)據(jù)和追蹤客戶端的所有信息,以便向用戶呈現(xiàn)正確的最終結(jié)果。后臺(tái)的工作舉例:
■ “這位玩家在設(shè)置中選擇了游戲中關(guān)閉客戶端,現(xiàn)在已經(jīng)進(jìn)入游戲了,關(guān)閉前端,游戲結(jié)束后再打開(kāi)。”
■ “這位玩家剛剛打開(kāi)了藏品標(biāo)簽。里面應(yīng)該都有哪些英雄?”
○ 簡(jiǎn)而言之,WebSocket就是前端與后臺(tái)連接的管道。拓寬管道,減少轉(zhuǎn)彎和打結(jié)的地方,數(shù)據(jù)傳輸就能更多更快,這正是新版本的CEF可以為我們帶來(lái)的好處。尤其是對(duì)使用較早硬件的玩家,WebSocket的優(yōu)化對(duì)改善大批數(shù)據(jù)傳輸(如游戲結(jié)束、英雄選擇)的效果更為明顯。與我們的CEF版本相比,優(yōu)化幅度可達(dá)到:
■ Windows速度加快4.1倍
■ Mac速度加快7.8倍
● 動(dòng)畫(huà)性能優(yōu)化
○ 具體說(shuō)來(lái),是根據(jù)數(shù)據(jù)生成的動(dòng)畫(huà)效果,如游戲結(jié)束頁(yè)面的經(jīng)驗(yàn)條(還有許多類(lèi)似的地方)。這些動(dòng)畫(huà)從技術(shù)上來(lái)說(shuō)是一種內(nèi)存泄漏,因此長(zhǎng)進(jìn)程中的客戶端整體性能也會(huì)有所提升。
● FPS提升——延遲降低,點(diǎn)擊響應(yīng)速度加快
● 開(kāi)發(fā)難度更低(就是更快、更可靠)
○ 更多避免較長(zhǎng)游戲進(jìn)程中發(fā)生內(nèi)存泄漏的方法
○ 一種新的衡量標(biāo)準(zhǔn),更好地提供關(guān)于客戶端在屏幕上呈現(xiàn)信息所需時(shí)間的數(shù)據(jù)
● CPU使用更智能
○ 在客戶端當(dāng)前CEF版本(74)中,一種叫做“網(wǎng)絡(luò)服務(wù)(Network Service)”的功能首次登場(chǎng),將所有網(wǎng)絡(luò)請(qǐng)求通過(guò)一條線路輸入CPU,這樣其他線路就可以完成更多任務(wù),比如加載內(nèi)容等。由于這個(gè)功能在我們上次更新CEF時(shí),才剛剛推出,來(lái)不及進(jìn)行測(cè)試,因此并沒(méi)有啟用。下一次升級(jí)時(shí),就可以籌劃在聯(lián)盟中支持該功能了。
● JavaScript性能優(yōu)化
○ 新的CEF版本對(duì)處理JavaScript的v8引擎進(jìn)行了大幅優(yōu)化。例如兼容性優(yōu)化,只需升級(jí)版本就可獲取。
上個(gè)季度我們的工作重點(diǎn)是升級(jí)現(xiàn)有網(wǎng)絡(luò)組件(比如視頻嵌入、彈窗提醒等等網(wǎng)站技術(shù)),使其版本與新CEF版本兼容,確保升級(jí)CEF本身不會(huì)引發(fā)任何問(wèn)題。我們希望這些組件的升級(jí)能夠?qū)崿F(xiàn)無(wú)縫體驗(yàn),所以大家應(yīng)該沒(méi)注意到在過(guò)去幾個(gè)補(bǔ)丁中逐步推出的升級(jí)。這些升級(jí)涉及到大量代碼,因此偶爾也會(huì)出現(xiàn)測(cè)試中漏掉的小問(wèn)題,但都立刻處理掉了。
完成這些組件升級(jí)最多還需要幾周時(shí)間,隨后我們就可以開(kāi)始升級(jí)CEF本身,并期望在2021年7月末完成。
社交面板
上次我們提到的另一個(gè)重點(diǎn)區(qū)域是社交面板。我們的長(zhǎng)期計(jì)劃是將社交面板從ComponentJS(舊架構(gòu))遷移到Ember。目前我們的精力還集中在CEF升級(jí)上,因此這項(xiàng)工作暫時(shí)擱置,但我們已經(jīng)完成了Ember遷移所需的部分早期步驟,CEF升級(jí)完成后就會(huì)繼續(xù)。
以下是工作重點(diǎn)轉(zhuǎn)移到CEF升級(jí)前,我們解決的一些社交面板的主要問(wèn)題:
1. 社交面板無(wú)法連接
2. 好友列表無(wú)法加載,狀態(tài)顯示不正確,好友數(shù)據(jù)問(wèn)題
3. 玩家在普通游戲中時(shí),懸浮卡片不顯示排位信息
4. 啟動(dòng)時(shí)在斷開(kāi)連接、憂傷的魄羅和好友列表加載之間亂跳
內(nèi)存占用和JavaScript錯(cuò)誤情況更新
我們也在繼續(xù)關(guān)注同一會(huì)話內(nèi)進(jìn)行的游戲的內(nèi)存占用情況。我們很高興看到,從補(bǔ)丁10.25之后,游戲的平均內(nèi)存占用下降了約30MB,整體內(nèi)存不足崩潰數(shù)量也在持續(xù)下降。
最后,我們想說(shuō)說(shuō)JavaScript錯(cuò)誤。上一篇文章中,我們提供的拳頭各地區(qū)玩家遇到的JS錯(cuò)誤數(shù)據(jù)有誤。10.25版本中,這個(gè)數(shù)字達(dá)到了驚人的2.65億。好在玩家實(shí)際遭遇的錯(cuò)誤數(shù)量并沒(méi)有改變,只是我們測(cè)量的手段變了,從而進(jìn)一步意識(shí)到了這個(gè)問(wèn)題的緊迫性。此后,我們的每個(gè)補(bǔ)丁平均降低了1.4億次錯(cuò)誤,并有信心可以繼續(xù)減少錯(cuò)誤數(shù)量。
目前的計(jì)劃
盡管我們近期的首要重點(diǎn)是CEF升級(jí),但也在規(guī)劃2021年的其他項(xiàng)目。
● 上文中提到的將社交面板遷移到Ember
● 重新審視比賽結(jié)束(EOG)頁(yè)面。去年底和今年初,我們處理了比賽結(jié)束的幾個(gè)主要問(wèn)題,但仍存在有待改進(jìn)的地方。許多玩家仍然反映存在返回客戶端時(shí)間過(guò)長(zhǎng)和/或比賽結(jié)束頁(yè)面死機(jī)的問(wèn)題。項(xiàng)目開(kāi)始后,第一步是摸清客戶端與游戲內(nèi)引擎和服務(wù)的所有互動(dòng),隨后考慮如何優(yōu)化體驗(yàn)。EOG調(diào)用了許多客戶端團(tuán)隊(duì)之外的服務(wù),我們需要與其他團(tuán)隊(duì)配合,一同進(jìn)行優(yōu)化。
● 進(jìn)入英雄選擇頁(yè)面延遲。這個(gè)問(wèn)題在部分地區(qū)報(bào)告頻率很高,說(shuō)明玩家的網(wǎng)絡(luò)連接情況是很重要的因素(不同地區(qū)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施情況各異)。雖然我們對(duì)網(wǎng)絡(luò)問(wèn)題可做的不多,但仍會(huì)與競(jìng)技團(tuán)隊(duì)合作,盡量在客戶端內(nèi)確保玩家在合理的時(shí)間內(nèi)進(jìn)入英雄選擇頁(yè)面。
● 長(zhǎng)會(huì)話中的客戶端穩(wěn)定性。去年年底我們發(fā)現(xiàn)了內(nèi)存泄漏,導(dǎo)致客戶端隨著玩家打開(kāi)多個(gè)游戲或客戶端長(zhǎng)時(shí)間空閑時(shí),占用內(nèi)存越來(lái)越多的緊急問(wèn)題。經(jīng)過(guò)更全面的跟進(jìn),我們將尋求更直觀的方法,讓玩家得以保持剛剛登錄客戶端時(shí)的體驗(yàn),無(wú)論他們已經(jīng)玩了多少局游戲或是客戶端開(kāi)啟了多長(zhǎng)時(shí)間。這部分修復(fù)工作可能還會(huì)不斷強(qiáng)化,解決更多難對(duì)付的內(nèi)存泄漏問(wèn)題,但我們還需要對(duì)照其他短期解決方案進(jìn)行衡量。
這次要說(shuō)的就是這些了!當(dāng)然,我們工作的一大動(dòng)力,就是來(lái)自各種渠道的反饋,包括定期玩家調(diào)查。歡迎大家繼續(xù)反映需要改進(jìn)的客戶端問(wèn)題,以及對(duì)您的體驗(yàn)影響最大的改進(jìn)!
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。