天天看點

你又可以大幅提升項目性能啦!

UWA本次新功能的特性主要為資源加載、GameObject Instantiate/Destroy、GameObject Active/Deactive、資源管理彙總四大功能子產品,下面小編将一一為大家說明。

一、資源加載

重點分析項目通過Resources和AssetBundle的加載開銷,說明如下:

1. AssetBundle資源加載

在AssetBundle加載頁面中,使用者可以看到每個具體資源在項目檢測過程中的具體CPU耗時,同時我們在之前版本的基礎上還明确了資源的加載母體AssetBundle資訊,這樣可以幫助研發團隊更加友善地定位和優化。

你又可以大幅提升項目性能啦!

2. Resource加載

支援使用者在Resource加載頁面中對耗時選項進行排序,其資源加載耗時的Top10即可一目了然。

你又可以大幅提升項目性能啦!

特别說明:該新功能不僅可以讓使用者看到整體加載耗時和加載次數,同時還可以通過圖表來顯示具體每次加載的位置和耗時。如下圖,資源檔案cite_girl(圖中右上角)是通過AssetBundle.Load來加載的,可以看到在項目檢測過程中,該資源被頻繁加載,且每次加載耗時主要集中在100~200ms之間。

你又可以大幅提升項目性能啦!

下圖中的SpeedRaceUI和UIscene_BJT是通過Resources.Load來加載的,可以看到在項目檢測過程中,該資源被頻繁加載,前者加載耗時主要集中在300ms左右,後者則主要集中在150ms左右。

你又可以大幅提升項目性能啦!

GameObject執行個體化和銷毀耗時同樣是研發團隊非常希望掌握的一個關鍵點。在UWA今天更新的版本中,我們将會讓研發團隊明确任何一個GameObject在執行個體化和銷毀時的CPU占用情況。大家不僅可以看到最為耗時的GameObject,同時還可以看到其每次觸發的時間點。

下圖中的YX_DCJM_02,在遊戲過程中被頻繁執行個體化,且每次耗時均将近100ms,對此,研發團隊完全可以考慮将其緩存,以避免後續0.1s的開銷。

你又可以大幅提升項目性能啦!
你又可以大幅提升項目性能啦!

GameObject Active/Deactive是研發團隊非常容易忽視的,大多數團隊認為狀态的切換開銷甚微,但正是由于這些“疏忽”導緻了某些GameObject的Active/Deactive切換造成了大量的CPU耗時。

下圖則為遊戲檢測過程中,shadow的Active/Deactive的操作由于大量次數的累積,都是屬于一個較高的耗時。

你又可以大幅提升項目性能啦!
你又可以大幅提升項目性能啦!
你又可以大幅提升項目性能啦!

通過這些功能中的資料,研發團隊可以從以下幾點進行針對性優化:

針對加載頻繁且耗時的資源,可以詳細對其資源進行檢測,檢視是否有進一步優化的空間(比如紋理可檢查其分辨率、格式等);

當研發團隊明确了加載或執行個體化的瓶頸後,可針對具體資源、GameObject進行緩存,進而降低其CPU耗時。

以UWA的優化經驗來看,二八定律同樣适用于項目的開發管理,即80%的性能問題集中在20%的資源中。為此,我們将需要注意的Top10的問題直接回報給使用者(新版本中的“資源管理彙總”界面),使用者通過對這些重點對象的快速處理,能在短期時間内達到立竿見影的優化效果。目前主要包括:

(1)AssetBundle的加載次數Top10

你又可以大幅提升項目性能啦!

(2)資源加載的次數和耗時Top10

你又可以大幅提升項目性能啦!

(3)GameObject 執行個體化/銷毀次數和耗時Top10

你又可以大幅提升項目性能啦!
你又可以大幅提升項目性能啦!

(4)GameObject Active/Deactive次數和耗時Top10

你又可以大幅提升項目性能啦!
你又可以大幅提升項目性能啦!

1. 截圖功能更新

在目前版本中,我們将項目的運作截圖從原來的 5秒/張 提升為 1秒/張,進而反映更詳細全面的項目運作情況,助您更犀利地洞察每一個性能瓶頸,捕捉任何可以優化的機會!

你又可以大幅提升項目性能啦!

2. iOS SDK 更新

在目前版本中,我們大力完善了SDK的相容,主要包括:

增加了截圖功能對Metal的支援,不再限制打包項目時所選擇的Graphic API

增加了對使用sLua和ToLua項目的支援

增加了對使用sLua,ToLua和uLua的項目的內建檢測功能,使用者可以一鍵檢測SDK的內建是否成功

原文出處:侑虎科技

本文作者:admin

轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。