UWA性能報告精讀

仿UWA對Unity項目進行性能分析<一>

最近在對項目的Unity部分進行性能分析,查找profiler的一些指標定義時,恰巧搜到了UWA的博客,看了以后感覺受益頗多。尤其是最后一部分的案例分析,包含了性能分析的參數和指標,可以作為Unity部分性能測試的范本。

《六龍爭霸》測評精講這篇為例,從幀率(CPU性能)指標入手,分析了《六龍爭霸》在渲染、內存、資源三大塊的優化情況。

細讀了一下整篇報告,發現除了texture紋理類型這塊沒有找到數據來源,猜測是通過解析資源的assetbundle,其余數據均來自Unity Profiler的日志數據,經過統計和二次計算。恰好手上有profiler的數據,所以準備依樣畫葫蘆來做一個類似的報告,看看自己項目的性能與UWA認可的標準的差距。

本篇是第一篇,是對《<六龍爭霸>測評精講》的深入解讀,整理一下各模塊數據的來源,因此所有截圖都來自此博客和網絡,沒有任何原創。

當然,懶如我,第二篇是什么時候,還不知道。

CPU性能

報告中CPU性能數據包括4個:

  • 總幀數
  • CPU耗時均值
  • CPU耗時>33ms幀占比(FPS<30)
  • CPU耗時>50ms幀占比(FPS<20)
《六龍爭霸》CPU性能概覽-三星S3(From Blog)

不難看出,其實只要對每幀的CPU耗時進行不同維度的統計計算,即可得到上述信息。
CPU耗時這個指標,使用過Unity Profiler的不會陌生,是Profiler界面的第一欄。點擊選中某幀后,會在下面窗口顯示該幀生成時各函數的耗時,如下圖所示。

Unity Profiler - CPU Profiler(From Unity Manual)

列表右上角的CPU指標即為該幀生成時CPU耗時。

渲染模塊

《六龍爭霸》渲染性能-三星S3(From Blog)

渲染模塊的參數同樣是4個:

  • max Drawcall
  • max Triangles
  • avarage 半透明渲染CPU耗時
  • avarage 不透明渲染CPU耗時

折線圖是每一幀的半透明和不透明渲染的CPU耗時,也就是計算后兩個指標的具體數值。
同樣的,CPU耗時依然來自Profiler的CPU Usage部分。
半透明渲染函數:Camera.Render/Drawing/Render.TransparentGeometry
不透明渲染函數:Camera.Render/Drawing/Render.OpaqueGeometry

DrawCalls和Triangles是渲染參數,來自Profiler的Rendering部分。

RenderProfiler.png

物理模塊

《六龍爭霸》物理模塊性能 - 三星S3 (From Blog)

包括圖中4個指標和文中提到的Rigidbodies,物理模塊有5個指標

  • avarage 物理計算CPU耗時
  • max Number of Contacts
  • max Static Colliders
  • max Dynamic Colliders
  • Active Rigidbodies

CPU耗時同樣來自于CPU Usage
函數名為:Physics2D.FixedUpdate/Physics2D.Callbacks/Physics2D.Simulate
不過,這個需要確認,我們項目用不到物理模塊,我沒有找到博客圖中所示的Physics.Simulate不代表沒有此函數,所以先定位到這個Physics2D。
剩余指標來自

Unity Manual - Physics Profiler

動畫模塊

由于我所在項目無使用,所以簡單提一下。
CPU耗時同上,函數為:

  • Animators.Update
  • Animation.Update(這個也沒有找到)
  • MeshSkinning.Update

Animation Clips在Memory Profiler窗口中可以間接獲得。圖見下章

內存模塊

Unity的內存分為兩行數據,一行是Reserved, 一行是Used,如下圖所示的Memory Profiler。

Unity Manual - Memory Profiler

Used和Reserved的差值則為用于該部分的空閑內存,這與Unity的內存管理機制有關。當我們需要評估應用所占內存大小的時候,需要用到Reseved的值;需要評估代碼的內存管理時,數值則需要以Used為準。兩者的差值代表著代碼對內存管理的優劣,由于Unity不會將申請的內存還給系統,所以需要更為合理的內存管理機制來降低空閑內存的大小。

《六龍爭霸》內存模塊性能分析 - 三星S3

參考博客中的數值,可以看到需要關注的6個內存數值為

  • Reserved Total
  • Used Total
  • Reserved Unity
  • Used Unity
  • Reserved GFX
  • Reserved Mono

空閑內存 =
(Reserved Total - Used Total) - (Reserved Unity - Used Unity)

資源模塊

報告中的資源模塊包括四種類型的資源:

  • Textures 貼圖
  • Meshes 網格
  • Animation Clips 動畫
  • Audio Clips 聲音

其中共同的性能指標為

  • 數量峰值
  • 內存峰值

這些都可以在Memory Profiler中獲取到。

GC調用

Instantiate實例化這個沒有找到,因此只對GC的部分做統計
GC的數據同樣在CPU Usage的表格部分。會通過如下類似的方式進行調用:

BehaviourUpdate/BehaviourUpdate/----.Update()/GC.Collect|0 B|0.97|0.97

意味著在該幀調用了GC,引起GC調用的是BehaviourUpdate/BehaviourUpdate/----.Update()函數,該次GC耗時為0.97ms

粒子系統

CPU耗時,同樣在CPU Usage的表格部分。
函數為:ParticleSystem.Update

參考資源

  1. 《六龍爭霸》測評精講
  2. Unity Manual - Profiler
  3. Optimizing Graphics Performance
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容