UWA 兩周年 | 優化就是在和時間賽跑

原文鏈接:UWA 兩周年 | 優化就是在和時間賽跑

UWA滿兩周歲了。在這兩年時間裡,我們完成了產品的設計和研發;進行了近6000次線上性能測評,測試幀數近8400萬幀;完成了1600次線上資源檢測,檢測了157萬個AssetBundle,檢測資源數近558萬個,每天有上千名開發者活躍在UWA網站和社群中汲取知識。從初露頭角到逐漸被遊戲圈的從業者了解和熟知,UWA究竟做出了哪些努力?

一、發布三大優化工具,為研發團隊節省時間成本

作為遊戲/VR應用性能優化平台,UWA目前提供:性能測評與優化、資源檢測與分析和UWA GOT 三大優化工具。而 UWA Blog 和 UWA Answer是開發者們之間知識分享的交流社區。

UWA 提供的產品和服務

性能測評與優化是UWA成立後第一個開放給開發者的優化服務,通過真人真機對項目測試並提供行之有效的性能報告和優化方案,從宏觀上分析總體CPU性能、GC調用頻率和引擎各模塊性能等,同時也深入剖析內存管理、資源使用以及邏輯代碼在運行時的效率瓶頸。

下圖為UWA性能檢測與優化的測試數據。近一年,UWA的性能檢測次數達4990次,相比一周年時增長了390%;檢測的幀數達 7095萬幀,增長了400%。

現在已有不少研發團隊養成了每周五打版本、周一看報告的習慣。他們說,這是他們最喜歡的節奏。

在過去的一年裡,我們推出了大量的新功能。

同時我們也不斷優化用戶的體驗,增加了一些輔助用戶理解和使用的功能,比如UWA Tips,不僅提醒用戶哪個性能參數存在風險,還能一鍵鏈接到相關的技術博客搜尋優化對策。

在服務開發者的過程中,UWA的思路就是和時間賽跑:在最短的時間裡,幫助研發團隊找出最高效的優化方法,將性能優化的時間逐步縮短,從而為項目的順利上線保駕護航。

手游《我一點也不可口》,使用UWA 線上測評後兩周內,將大於33ms的CPU耗時佔比從46%驟減至1.7%。

除了性能測評之外,我們的資源檢測工具通過分析和定位包體資源的冗餘問題,來實現減小包體、減小內存以及提升載入速度的目的。迄今為止,資源檢測的次數已經達到1600次,檢測的累積AssetBundle數到達157萬餘次。資源檢測的AssetBundle數量相比一周年時增長了550%;檢測的資源數則增長了520%。

該工具一個出眾的特點就是「快」!用戶上傳項目的AssetBundle包後(無須工程源碼),該工具即刻執行,並在幾分鐘之內反饋資源的打包情況。不僅如此,通過報告中提供的相應解決方案,用戶在幾天甚至幾小時之內就可以掌握資源冗餘的根本原因,並大幅改善包體資源的冗餘情況。

UWA GOT的誕生:讓測試更靈活、更易掌控

隨著以上工具被越來越多的開發者使用,我們也收到了大量的反饋和建議,其中一點是研發團隊希望能更自由地測試項目性能, 並且能夠本地查看和分析這些數據。為了滿足這個需求,UWA GOT應運而生。作為一個可以在本地進行測試、上傳、查看並分析數據的工具,用戶再也無須為搭建伺服器的複雜性而煩惱,測試的流程也更靈活、更易掌控。該工具目前支持Performance Overview、Mono Memory Analysis 和 Runtime Asset Tracker三大功能。

二、除了UWA提供的三個優化工具之外,研發團隊還能獲得哪些資源?

UWA Blog 是我們為開發者搭建的知識交流社區,旨在實現更具實戰經驗的知識分享,這裡的文章源自大量的優化經驗總結和周而反覆的測試驗證,大大降低了用戶盲目試錯的成本。該社區一經推出就吸引了不少開發者的關注,並成為大家在研發中時常用到的知識庫。

UWA Blog:這裡已經彙集了超過百篇的技術文章,不僅有UWA 工程師的經驗總結,更有民間高手給大家分享自己的優化技巧。

形上謂道、形下謂器

如果說UWA Blog提供的是理論知識,那麼UWA問答則是「具體分析、具體解決」。大家每天遇到的絕大部分技術問題其實都是非常瑣碎的。其底層的原理可能是一致的,但往往由於開發環境不同、設備硬體不同和項目需求不同等而千差萬別。對於這種情況,我們只能具體案例具體分析。因此,我們推出了UWA問答。一個好的問題,可以讓提問者和回答者同時獲益。我們希望可以建立這樣一種環境,讓中國的遊戲開發者可以提出優秀的問題,並同樣得到更為優秀的回答。我們也希望可以營造這樣一種氛圍,讓大家樂於分享,而能力也在互助中增長。

除了以上UWA日常能提供的工具和服務之外,UWA還不定期舉辦了各種技術交流活動。我們希望通過更為直接的方式與大家互動,讓更多的開發者能了解並使用到UWA提供的資源和服務。

三、解決你的問題,才是優化

「答案永遠在現場」,這是我們一直秉持的理念,也是我們堅持進駐團隊的原因。只有到現場查看項目的真實製作情況,與研發團隊進行面對面地溝通,我們才能了解這個項目的背後到底經歷了什麼,才能拿出真正有用的方案去解決問題,這正是UWA深度優化所做的事情。每一個項目,我們都會拿出十天左右的時間,將我們的注意力完全滲入到項目中的各個模塊,去探索它們的性能瓶頸並揭開它們背後的故事。在別人眼裡,優化就是短時間內把性能「神奇」般地提升,而在我們眼裡,優化跟「神奇」沒有任何關係,優化就是「針對你的問題,一次又一次、不厭其煩地試驗、摸索並最終找到一條最適合你的路」。我們認為,解決你的問題,才叫優化!目前UWA的深度優化測試項目總計56份,總計報告頁數5,939頁,字數140.2萬字,平均每份報告100頁以上、2.3萬字,遊戲品類涵蓋了MOBA、MMORPG、ARPG、ACT、FPS、沙盒等。

四、讓市場上不存在任何一款因為性能而被詬病的手游

在UWA做性能優化服務的這段時間裡,見證了手游品質的穩步增長。隨著手游的精品化趨勢越來越顯著,性能問題也正日益凸顯。從上個月我們匯總並發布的MMO、ARPG手游性能報告中也可窺見一斑。

上面這條不斷向上攀升的曲線,讓我們感到優化這件事任重而道遠。創業兩年對於UWA來說僅僅是個開始,中國有數百萬的遊戲開發者,每天在各大渠道上有近千款遊戲在迭代更新,而任何一款無不都凝聚著大家的心血和期待。我們希望UWA能幫到任何一個項目,哪怕是提速一毫秒。

簡單優化,優化簡單。這是UWA成立之初的願景,細分到每個階段,就是將優化的過程變得簡單,再簡單些。我們會繼續打磨工具,加強分析。未來,UWA將陸續增加對GPU性能、Lua性能和能耗方面的深度支持;同時,我們也會提供更便捷省心的服務,想開發者所想,急開發者所急。

最後,也感謝大家一路的信任和鼓勵,未來的UWA,將以更穩健的節奏和開發者一路並行。


推薦閱讀:

你知道這款數據驅動優化的利器嗎?
優化演算法之梯度下降演算法
小型 Web 頁項目打包優化方案
Unity優化技巧(中)
關於演算法競賽中快速乘的一些優化

TAG:移动开发 | 优化 | 性能 |