CSV配置文件的優化策略
這是第119篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收穫。
堆內存
Q:在我們的UWA報告中顯示,現在Mono GC 分配達到了30MB,持續存留的內存也有20MB左右。我們是直接Split,也測試過indexof+substring,但是並沒有多大改進。想問下大家有沒有針對CSV配置文件的優化策略呀?
感謝凱奧斯@UWA問答社區提供了回答,歡迎大家轉至社區進行進一步交流:
https://answer.uwa4d.com/question/5b3e0eb4f91024518ab77ab0
動畫
Q:特效使用動作控制器做表現的時候,會遇到顯示時控制器初始化,導致那一幀時間消耗變大很多;而且每一次SetActive都會初始化控制器,每次都會有初始化的時間消耗。請問大家有什麼好辦法嗎?
A1:隱藏GameObject並不一定需要SetActive,可以將所有的Renderer組件Enable設置為False。
感謝胡阿毛@UWA問答社區提供了回答
UWA:對於含有Animator組件的GameObject進行Active操作是一定會造成Animator.Initialize的CPU開銷的。建議可以看一下這問題:Profiler中看到Animator.Initialize這個耗時很大,這個有什麼建議么?
該問答來自UWA問答社區,歡迎大家轉至社區進行進一步交流:
https://answer.uwa4d.com/question/5b3e0fbef91024518ab77ab2
崩潰/閃退
Q:我在Unity 4.x下用WWW載入資源會奔潰,顯示
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)。
最後定位到調用的介面是:
MemoryProfiler::RegisterRootAllocation(void*, BaseAllocator*, char const*, char const*)+124,請問該怎麼處理呢?
UWA:如果是Development Build的版本出現了崩潰Log,那其實不用管它,因為這個Crash只在Unity 4.x上的Dev版本中出現,在Release版本中是不會出現的。如果題主發現Release版本也在相同位置出現崩潰,那麼應該是其他問題,跟這個Crash Log沒關係了。該Bug在Unity 5.0以後被修復,但在Unity 4.x上依然存在。
該回答由UWA提供,歡迎大家轉至社區進行進一步交流:
https://answer.uwa4d.com/question/5b3ee720f91024518ab77ac0
資源管理
Q:我們項目從Unity 5.6升級到2017.4.3之後,美術的貼圖文件都發生了改變,主要是Meta自動被修改了,修改如下。這個是不是Unity版本自身的問題,導致貼圖的一些信息被改變了?
A:問題已經解決,是因為我們工程內有後處理腳本,在OnPostprocessTexture中對美術的貼圖限制了大小,防止他們提交大於2048的貼圖,只要對導入的貼圖不進行導入修改就沒有問題了。(在此,感謝UWA群的一位朋友的指導)
感謝題主爐石不傳說@UWA問答社區分享該問答,歡迎大家轉至社區進行進一步交流:
https://answer.uwa4d.com/question/5b3cc4fdf91024518ab77a94
堆內存
Q:ManagedHeap.ReservedUnUsedSize的內存佔用有2個GB,這是什麼原因導致?這個參數一般大家都是控制在什麼範圍內呢?
UWA:這應該是遊戲運行到某一階段時,出現了很大的堆內存分配,然後將Mono的總體堆內存撐高所致,後續雖然此處的堆內存被GC掉了,但是Mono的整體堆內存是不會返還給系統的。這也是為什麼ManagedHeap.ReservedUnusedSize才會這麼大。對此,建議題主查查看是否確實存在這種情況,一般都是發生在遊戲、技能配表或者地形導航網格載入時所致,建議題主先從這些方面進行查起。
對於手游,UWA建議Total Mono堆內存峰值小於40MB。
該回答由UWA提供,歡迎大家轉至社區進行進一步交流:
https://answer.uwa4d.com/question/5b3e0a98f91024518ab77aad
今天的分享就到這裡。當然,生有涯而知無涯。在漫漫的開發周期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網站上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之「石」,也能攻你之「玉」。
封面圖片來自網路
TAG:侑虎科技 |