![]()
這是第471篇UWA技術(shù)知識分享的推送,精選了UWA社區(qū)、UWA AI問答的熱門話題等技術(shù)知識點,助力大家更全面地掌握和學(xué)習(xí)。
UWA社區(qū)主頁:community.uwa4d.com
UWA QQ群:793972859
本期目錄:
Spine動畫更新耗時問題治理
項目卡頓與GC問題優(yōu)化方案
本次推送的實戰(zhàn)案例來自于使用UWA服務(wù)的項目的真實且典型的問題。UWA將關(guān)鍵線索、定位路徑與處理建議整理成了可復(fù)用的案例筆記,便于大家快速對照、排查自身項目中的同類問題。
實戰(zhàn)案例
Q1:我們是一款三消游戲,進到游戲場景后SkeletonGraphic.Update和SkeletonGraphic.LateUpdate的耗時比較高,該怎么優(yōu)化?
![]()
A: 從GOT Online的報告中可以看到,進入游戲場景后Update和LateUpdate的調(diào)用次數(shù)達到50個以上 ,它其實反映了場景中激活狀態(tài)的Spine組件數(shù)量,首先我們要定位下具體的來源,檢查有沒有預(yù)期之外的。
經(jīng)討論后確認(rèn),這些格子里的小圖標(biāo)特效是Spine做的,像這種變化幅度不是特別大的、沒有像骨骼比較精細的動畫,從我們經(jīng)驗上看確實沒有太大必要用Spine來做,這種小的簡單動畫可以嘗試改成其它動畫方案實現(xiàn)。
另外了解到畫面上方的一些角色也都是Spine做的,但是它們在屏幕外時沒有做相關(guān)處理,仍然在更新。這種情況可以利用Graphic組件上的Freeze功能,也可以通過代碼進行控制,當(dāng)這個對象在視域體外的時候就把它凍結(jié),這樣它就會停止Spine相關(guān)邏輯的更新,等到快要回到視域體中時再把Freeze狀態(tài)解除。
![]()
Q2:那如果我在這些角色滑出屏幕后直接disable隱藏掉,和這個Freeze效果是一樣的嗎?
A: 理論上是一樣的,但還是更推薦Freeze,因為SkeletonGraphic也是屬于UI組件之一,然后看畫面本身也是比較復(fù)雜的UI元素,如果直接調(diào)用激活隱藏,可能對UI的性能會有一些負面的影響,觸發(fā)網(wǎng)格重建導(dǎo)致額外的開銷。
實戰(zhàn)案例
Q:我們目前比較關(guān)心項目的卡頓和GC相關(guān)的情況,想問下該怎么優(yōu)化?
A: 從GOT Online的性能測評報告來看, 主要有兩方面的問題。
首先是GarbageCollectAssetsProfile這個節(jié)點,也就是在調(diào)用Resource.UnloadUnusedAssets時觸發(fā)垃圾回收的開銷,在這個類似主城的場景里它的調(diào)用頻率非常高,每隔幾百幀就會觸發(fā)一次,這是不太合理的。Unity中本身有一個機制,在LoadScene的時候會自動調(diào)用Asset垃圾回收,所以一般不需要手動去觸發(fā)。不過也有一些像這種沒有去做LoadScene切場景,不會有自動的調(diào)用,有的項目會選擇用定時器的方式去手動調(diào)用,一般控制在5~10分鐘調(diào)一次,還有的項目會放在觸發(fā)內(nèi)存報警Low Memory的時候主動調(diào)用,或者還有在場景切換前后這種明確的節(jié)點,主動調(diào)用。其他時候盡量還是要避免頻繁調(diào)用,不然會造成非常多的卡頓。
![]()
另外還看到在三消的場景中,GC.Collect的調(diào)用頻率比較高,從Mono報告能看到有個函數(shù)會以非常高的頻率進行分配,且每次分配1MB以上的堆內(nèi)存,主要是Json相關(guān)的數(shù)據(jù)寫入序列化等。
![]()
總之從這個表現(xiàn)來看還是分配的頻率太高,而導(dǎo)致GC的頻率也比較高,建議排查一下這種操作的單次分配量和頻率能否降低一些。
無論是社區(qū)里開發(fā)者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個技術(shù)難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區(qū),希望這些從真實開發(fā)場景中提煉的經(jīng)驗,能直接幫你解決當(dāng)下的技術(shù)卡點,也讓你在遇到同類問題時,能更高效地找到破局方向。
封面圖來源于網(wǎng)絡(luò)
今天的分享就到這里。生有涯而知無涯,在漫漫的開發(fā)周期中,我們遇到的問題只是冰山一角,UWA社區(qū)愿伴你同行,一起探索分享。歡迎更多的開發(fā)者加入UWA社區(qū)。
UWA官網(wǎng):www.uwa4d.com
UWA社區(qū):community.uwa4d.com
UWA學(xué)堂:edu.uwa4d.com
點擊下方名片關(guān)注我們,將我設(shè)為星標(biāo),及時接收小編每日推送哦,性能優(yōu)化不迷路~
近期精彩回顧
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.