動態

詳情 返回 返回

UWA發佈 | Unity手遊性能年度藍皮書 - 動態 詳情

作為 UWA 一年一度的行業標杆之作,《2024-2025年度Unity手遊性能藍皮書》重磅發佈。這份延續多年的專業性報告,系統彙總了遊戲行業使用Unity引擎進行手遊開發及上線後的性能表現,從<font color="SteelBlue">測試機型分佈、引擎各模塊開銷、內存佔用</font>等核心維度,深度剖析Unity手遊的性能瓶頸與發展趨勢,精準映射行業現狀,為遊戲開發商提供科學的性能定位與優化方案指引。

這是侑虎科技原創文章,歡迎轉發分享,未經官方授權請勿轉載。如果您有任何獨到的見解或者發現也歡迎聯繫我們,一起探討。(QQ羣:793972859)


報告目錄:
1)Unity手遊測試機型分佈
2)Unity手遊CPU模塊性能開銷分析
3)Unity手遊內存模塊性能開銷分析
4)Unity手遊GPU模塊性能開銷分析

本次發佈我們針對不同檔次的機型進行分析,依據UWA設定的設備算力進行分檔。以下是每種檔位的典型機型:

頂級:小米 14、小米 13、小米 12S Pro、華為 Mate 60 Pro、華為 Mate 50 Pro、小米 12、華為 Mate 40 Pro、小米 11、紅米 K50
高端:紅米 K40、華為 P40 pro、三星 Galaxy S10、小米 10、小米 9、小米 8、華為 P30、紅米 Note10 Pro
中端:小米 8 SE、紅米 Note9
中低端:OPPO R17

不同市場和遊戲玩法對於機型定位標準不同,以上分檔僅供參考。

◆ Unity手遊測試機型分佈

在本週期內,我們統計了項目組在日常研發過程中使用的測試手機品牌和具體型號的佔比,反映出遊戲研發團隊用於性能測試的移動設備的選擇偏好。

各品牌的使用佔比

遊戲研發團隊用於性能測試的機型主流品牌依次是:華為(15%)、小米(15%)、紅米(15%)、Vivo (12%)、三星(11%)和OPPO (8%)。由於遊戲出海的需求,三星手機的佔比依然較高,且在出海的地區中三星的佔比遠高於小米和Vivo。

注:由於一個項目可以同時使用多個品牌的設備進行測試,統計中進行了規範化,使佔比總和為100% 。

Top 20 測試設備(按項目佔比計算)

  • 小米品牌以絕對性優勢在測試機型中拔得頭籌,Top 3機型分別為小米 10、小米 8和小米 13;
  • 華為品牌的Top 3機型分別是P40 Pro、P30和Mate 50 Pro。

Top 20 測試設備使用趨勢(按項目佔比計算)

以小米 10、小米 8和小米 13作為測試機的數量明顯提升;
上一年度的低端機代表紅米 4X已退出Top 20排名。

FPS均值總體情況

不同檔次設備的FPS均值表現

從已有的FPS均值總體測試數據來看,有38%的項目幀率在20-30幀之間,25%的項目在45-60幀之間。説明大部分的項目還是趨於30幀的目標做優化,但同時也説明目前已經有較多項目開始以60幀為目標進行遊戲開發,高端設備(非頂級)上已經有近30%的項目以60幀作為目標。

在中低端設備上:75%的項目未到達30幀,33%的項目未達到20幀;
在中端設備上:60%的項目未達到30幀;
在高端設備上:47%的項目未達到30幀;
在頂級設備上:36%的項目未達到30幀,4%的項目達到60幀。

不同檔次設備的FPS均值走勢

頂級設備的幀率(均值)在40幀左右;
高端設備的幀率(均值)在32幀左右;
中端設備的幀率(均值)在29幀左右;
中低端設備的幀率(均值)在24幀左右。

Jank均值總體情況

不同檔次設備的Jank值走勢

卡頓均值在2025年Q1上揚,後續卡頓值維持在6次/分鐘,建議研發團隊使用UWA GOT Online - Overview模式測試,並通過卡頓分析功能來進行檢測和優化。

下面我們來具體分析Unity引擎的主流模塊的開銷情況。

為了能夠更好地反映出各個性能參數的整體使用情況,我們統計了每種性能參數的主體使用範圍,其範圍區間是[5%~95%],以下數據中P5代表5%,P50代表中位值,P95代表95%。

◆◆ Unity手遊CPU模塊性能開銷分析

一、渲染模塊

DrawCall數量的主體範圍均值

半透明渲染DrawCall主體範圍均值

不透明渲染DrawCall主體範圍均值

DrawCall Batches數量的主體範圍均值

從上述的數據中可以看出,URP項目在通過合理的Batch之後,基本上都控制在了合理範圍內,説明SRP Batch的合批效果非常突出,這也是UWA推薦研發團隊要深入學習URP的原因。

Triangle數量的主體範圍均值

同屏渲染面片數在不同檔次的設備上畫質分級效果已經並不突出,建議研發團隊進一步加大場景、角色建模的複雜度,將模型的細節更加突出。

二、邏輯代碼

GC調用頻率

僅有27%的項目將GC調用頻率控制在1000幀/次以上;52%左右的項目小於600幀/次,説明GC問題依然值得關注。

不同檔次設備的GC調用頻率(幀/次)

對於GC的優化,建議研發團隊一方面繼續優化自身邏輯代碼的堆內存分配,一方面推薦大家使用Unity引擎的Incremental GC功能,來降低每幀GC的CPU耗時。

三、UI模塊

目前我們主要統計了NGUI、UGUI和FGUI的佔比情況。三種UI解決方案在這一年中,總體走勢都較為平穩,UGUI依然是壟斷地位,最高時可達86%;同時,NGUI或FGUI的使用比例均為7-8%。

UI 類型佔比

UI 類型佔比走勢


接下來,我們以統計範圍內最為主流的UGUI來進一步分析。

UGUI耗時均值分佈

*Canvas.SendWillRenderCanvases CPU耗時均值分佈

UI模塊的性能開銷依然很高,但相較於去年,有進一步提升。這主要是在這一年多以來,各大研發團隊對於UGUI的理解和掌握都在不斷深入。當然,UGUI的使用也會有明顯的性能問題,主要有以下三方面:
1) DrawCall;
2) 重建;
3) Overdraw。

針對以上問題,大家可以通過UWA學堂(https://edu.uwa4d.com)中UI相關的技術文章和視頻進行學習和了解,相信對幫助大家快速提升UI方面的技術理解大有裨益。


四、動畫模塊

Animators.Update耗時主體範圍均值

不同檔次設備Animators.Update耗時均值走勢

除了中低端設備,其他檔次設備的動畫性能的趨勢表現都較為平穩,説明大家對於動畫模塊的使用較為合理的。除了中低端設備以外,動畫模塊的性能耗時在2025年Q1均有所上漲。

同時,AnimationClipPlayable功能也非常值得研發團隊後續研究和關注,它對於動畫系統性能方面的提升有很大的潛力可以挖掘。


五、物理模塊

Physics.Processing耗時均值的主體範圍

物理模塊耗時走勢

物理模塊的整體耗時相對比較平穩,這得益於越來越多的研發團隊對於物理引擎開啓的必要性做了更深入的瞭解。

同時,隨着大家對於場景和角色物理模擬的逼真度要求越來越高,布料、布娃娃系統相關的插件開始逐步被廣泛使用。特別是今年我們關注到不少團隊開始使用Magica Cloth並取得了不錯的性能效果,因此建議研發團隊對其進行研究關注。


六、粒子模塊

ParticleSystem.Update耗時的主體範圍均值

粒子系統耗時均值走勢

不同檔次設備粒子系統耗時均值走勢

提示研發團隊注意兩方面:
1)建議針對粒子系統根據不同設備的性能進行不同程度的調整,從而進一步降低粒子系統的CPU耗時和內存佔用;
2)針對技能特效建議進行定期自動化地檢測,可以參考雷霆的特效自動化檢測方案。

◆◆◆ Unity手遊內存分佈

一、總體內存

PSS內存佔用峯值總體情況

不同內存設備的PSS內存佔用峯值

PSS內存佔用峯值走勢

不同內存設備PSS內存佔用峯值走勢

4GB內存以下設備的內存佔用(中位值)在1.1GB-1.3GB之間,4GB內存以上設備的內存佔用在1.2GB-1.6GB(中位值)之間,且無論是低端、中端還是高端,整體趨勢較為平穩。

注:由於在部分設備上存在無法獲取顯存的情況,所以PSS內存佔用數值略偏低。


二、總體堆內存

Mono內存佔用峯值總體情況

不同內存設備的Mono內存佔用峯值

Mono內存佔用峯值的走勢

不同內存設備的Mono內存佔用峯值走勢

總體堆內存一直是項目的內存瓶頸,雖然在過去一年有所起伏,但有58%的項目堆內存大於100MB,大於200MB的項目也佔24%。這主要是遊戲的重度化所致,但另一方面也是研發團隊對於Mono堆內存分配疏於管理所致,例如配置文件的序列化庫使用不當等,建議研發團隊在項目中前期選擇序列化庫時儘可能做更多的調研或者實驗,來制定更合適合於自身項目的序列化配表解決方案。

項目的內存佔用很大一部分來自於資源的使用,下面我們將對項目中主流資源的使用情況進行分析。


三、紋理資源內存

紋理內存佔用峯值總體情況

不同內存設備的紋理內存佔用峯值

紋理內存佔用峯值走勢

不同內存設備的紋理內存佔用峯值走勢

雖然硬件設備和畫質要求在不斷提升,但大家在高內存設備上的畫質分級的設計上還不夠明顯,效果差異尚未拉開。這説明大量項目在中高端設備上並未很好地利用設備的硬件優勢,UWA認為,在當下的高端甚至旗艦設備上,大家的遊戲品質依然有很大的可提升空間。

ASTC/ETC格式紋理覆蓋率走勢

ASTC/ETC格式紋理運行時數量佔比走勢

使用ASTC格式的項目越來越多,且自身資源的數量在項目中的佔比也在快速升高。就目前我們觀測到的項目而言,在國內,ASTC已經成為目前遊戲市場的主流格式,基本上大家可以直接選擇該格式成為項目紋理的解決方案。而如果考慮出海,則建議研發團隊通過更多當地運營項目或渠道數據來謹慎選擇ASTC或ETC2格式。

四、網格資源內存

網格內存佔用峯值總體情況

不同內存設備的網格內存佔用峯值

網格內存佔用峯值走勢

不同內存設備的網格內存佔用峯值走勢

網格峯值內存的中位數使用內存均在30MB以下,該值偏低,由於設備內存在不斷增加,研發團隊可以考慮進一步加大場景、角色建模的複雜度,將模型的細節更加突出。

五、動畫資源內存

動畫片段內存佔用峯值總體情況

不同內存設備的動畫片段內存佔用峯值

動畫片段內存佔用峯值走勢

不同內存設備的動畫片段內存佔用峯值走勢

動畫模塊的內存使用趨勢在2024年Q3有明顯的波動,峯值內存的均值長期維持在20MB之內。

六、Shader資源內存

Shader內存佔用峯值總體情況


不同內存設備的Shader內存佔用峯值

Shader內存佔用峯值走勢

不同內存設備的Shader內存佔用峯值走勢

結合之前的Unity版本使用統計報告來看,在當前絕大多數的項目中,Shader的內存都已經被正確統計在了Shader資源本身而非ShaderLab中,這有助於我們更好地探究和優化Shader內存。理論上,影響這部分Shader資源內存的主要因素之一就是進入內存的變體數量。

這就產生一個非常常見的矛盾或者説浪費,即進入內存的變體數量遠大於實際渲染需要的情況。建議研發團隊結合AssetBundle檢測服務,對Shader進入包體的變體數量作檢測;對於存在浪費的Shader,可在UWA學堂中搜索瞭解相關方法進行優化。

同時,也建議研發團隊結合本地資源檢測服務,對Shader相關的規則做檢測,尤其是變體數量。


七、RenderTexture資源內存

RenderTexture內存佔用峯值總體情況

不同內存設備的RenderTexture內存佔用峯值

不同內存設備的RenderTexture內存佔用峯值分佈

RenderTexture內存佔用峯值走勢

不同檔次設備的RenderTexture內存佔用峯值走勢

不同檔位機型上的RenderTexture內存佔用都有波動,且在RT的效果分級上取得了一定的成效。

八、粒子系統資源內存

粒子系統內存佔用峯值總體情況

不同內存設備的粒子系統內存分佈佔用峯值

不同內存設備的粒子系統內存分佈佔用峯值

粒子系統內存分佈佔用峯值走勢

不同檔次設備的粒子系統內存分佈佔用峯值走勢

粒子系統內存佔用雖有波動,但基本保持在10~25MB之間,説明遊戲團隊的特效品質在不斷提升。UWA建議大家在不斷提升特效品質的同時,切記要經常檢測特效的製作質量和性能開銷,因為美術人員如果不瞭解特效的製作特點,很可能會造成“做的越多、返工越多”的現象,這樣就會造成大量的研發資源浪費,甚至導致項目上線的延期。

對此,UWA推出的本地資源檢測服務,針對項目工程中的靜態資源(比如紋理、網格、音頻、動畫以及粒子系統、代碼設置等等)可做檢測,來檢測美術資源是否有設置不合理,做到靜態資源的及時問題反饋、及時修復。

◆◆◆◆ Unity手遊GPU模塊性能開銷分析

GPU重要性能參數

從2023年的Q2開始,我們的GOT Online產品開始推出GPU端的性能分析指標,我們希望通過提供更多有價值的性能指標,來為遊戲項目在GPU方面提供更好的分析和優化方案。通過這一年來的摸索,我們在整個行業內積累了大量的GPU端相關性能數據,接下來,我們將針對較為重要的指標來進行分享,希望這些統計數據能夠對大家理解和分析自己項目在GPU端的性能問題有所幫助。由於過去一年內,UWA的GPU性能指標陸續上線,且針對不同品牌的芯片,其性能指標也差異很多,所以接下來的數據展示主要來自於Mali和高通芯片,且對其對應的性能參數進行了歸類,希望可以讓這些性能指標更符合大家的理解。

1. GPU耗時均值走勢
GPU耗時表示GPU處於工作狀態的時間,我們在這個方面迭代了大量的計算版本來提升改數值的精準性。雖然由於GPU可以在不同的頻率下工作,工作時間並不直接反應工作壓力,但該數值仍可以針對不同的芯片來進行較為精準地反饋,下面是Mali芯片和Adreno芯片上該指標的性能趨勢。

從上圖可以看出,無論是何種芯片,GPU耗時均值均在15~25ms區間內,且有小幅上升的趨勢。但是,當我們進一步按照設備檔位來進一步細分GPU開銷時,則會明顯發現,當下遊戲在中低端設備上的GPU性能壓力較大,如下圖所示,P95數值均大幅高於33ms。

2. GPU Clocks指標統計
為了更精準地讓研發團隊瞭解到自己項目的GPU壓力,我們也統計了GPU Clocks指標的參數範圍和變化趨勢,具體如下圖所示。

GPU Clocks均值走勢

通過趨勢圖我們可以看出遊戲項目依然在向精品化趨勢過渡,但研發團隊更需要關注的是該參數的主體,通過主體範圍的相關數值,研發團隊可以進一步針對自身項目來衡量和制定自身項目的研發標準。

GPU Clocks均值主體範圍分佈

GPU Clocks峯值走勢

GPU Clocks峯值主體範圍分佈

3. GPU利用率(GPU Usage)
以Mali芯片為例,我們統計了近一年來,大量項目的利用率均值和峯值分佈情況,如下圖所示。

GPU Usage均值主體範圍分佈

GPU Usage峯值主體範圍分佈

從上圖可以看出,目前大部分遊戲項目在中低端檔次設備上,都存在不同程度的GPU利用率過大問題,這樣和上面GPU耗時分析相吻合,因此,建議研發團隊特別關注自身項目在中低端檔次設備上的GPU性能壓力,對設備分級和GPU性能選擇進行更進一步的細緻劃分,從而提高中低端設備玩家的遊戲體驗。

4. Fragment Shaded參數統計
該參數統計每幀設備通過Fragment Shader來渲染的像素值,就目前移動遊戲而言,其最大的GPU性能壓力主要(80%+)來自於Fragment Shading。所以,在UWA GOT Online報告中,會非常詳細地對其進行統計和分析。下圖為不同芯片廠商中,Fragment Shaded參數的均值和峯值趨勢走勢。從圖中可以看出,雖然均值走勢相對比較平穩,但峯值走勢卻在近兩個季度大幅上升。這也預示着未來GPU性能瓶頸依會在整個遊戲行業進一步凸顯。

Fragment Shaded參數均值趨勢

Fragment Shaded參數峯值趨勢

近一年來,該性能參數在不同芯片上的分佈範圍,我們將其重點羅列如下,研發團隊可以根據自己項目的GOT Online報告來進行比對。

Fragment Shaded均值主體範圍分佈

Fragment Shaded峯值主體範圍分佈

5. 總體帶寬均值走勢
GPU帶寬是GPU端非常重要的性能指標,特別是在當下的移動遊戲上。因為帶寬過高會直接影響設備發熱,進而導致設備降頻。設備一旦降頻,無論是CPU還是GPU,其性能均會受到極大影響,所以,移動遊戲研發團隊需要不斷關注自己項目的GPU帶寬問題,及早發現、儘快解決。

下圖為Mali芯片和Adreno芯片的平均帶寬佔用趨勢,基本上都控制在50~70MB/幀,該範圍較為合理。因為如果遊戲以30幀/秒的幀率進行運行,那麼每秒的GPU帶寬將達到1.8~2.4GB,一般我們建議主流機型(比如小米 10)的帶寬量儘可能控制在3.0GB/秒以下較為合適,但如果您的遊戲希望達到60幀,那麼該流量則過大了,會很快導致設備發熱進而降頻,因此,UWA建議研發團隊儘早通過量化指標來建立研發標準,否則越到研發後期,返工成本越高。

總體帶寬均值主體範圍分佈

6. Overdraw分析
Overdraw對於GPU性能的重要程度不言而喻,Overdraw層數越高,意味着每幀GPU要渲染的像素越多,如果Shader的複雜程度也很高,那麼GPU的性能壓力將會十分巨大。因此,在GOT Online報告中就非常重視Overdraw層數的分析,下圖則是這一年來現有測試遊戲Overdraw的統計分析,我們將以均值和峯值來進行展示。

Overdraw層數均值走勢

在最近一年的移動遊戲測試中,無論是Mali芯片還是Adreno芯片,其Overdraw層數基本上都維持在4~8層左右,如下圖所示。

Overdraw層數均值主體範圍分佈
下圖則是兩款芯片上Overdraw層數的細緻分佈情況。

Overdraw層數峯值走勢
在峯值方面,Overdraw層數峯值逐季度上升,如下所示。一方面隨着我們GPU模式的推出,最近一年的GPU測試遊戲項目在不斷增加;另一方面,也是移動遊戲同樣在朝着精品化不斷髮展。對此,UWA建議研發團隊在研發過程中,特別注意Overdraw的峯值區域,查看其是否使用合理。一般情況下,造成Overdraw層數較高的原因主要如下:

(1) 技能特效、場景特效(煙、霧、雲等)的不合理製作;
(2) UI界面的疊層過多,特別是不可見的UI界面需要特別注意,“不可見”不代表不渲染;
(3) 多個渲染相機同時工作,但玩家很可能只看到少數幾個。這種情況本質與第(2)點相同,玩家沒看到,但GPU確實實時渲染,造成不必要的資源計算浪費。

造成Overdraw層數過高的情況還有很多,在此我們無法一一列舉,但我們建議研發團隊在日常的研發工作中,儘可能將其作為性能測試的常備觀察項,以便及時發現問題,及時解決問題。

Overdraw層數峯值主體範圍分佈

我們深信數據是會説話的,總有規律值得我們追溯求實、鑑往知來。同時我們也會不斷細化評析的標準、分類等,讓數據更具有代表性和説服力。

*本報告中的數據最終解釋權歸侑虎科技所有。

user avatar wenzhongdejianpan 頭像 ecomools 頭像 wodekouwei 頭像 youfujidebangbangtang 頭像
點贊 4 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.