1)IL2CPP的內存問題
2)Log致使的內存泄露問題
3)Profiler中的Built_in Resources中的內存
4)華爲P30視頻播放異常
5)有關UWA GOT的疑問ide
Q:最近看問答上面有個關於IL2CPP和Mono的對比,看到IL2CPP內存衝高會降低。關於這個,我問了Unity的官方技術,回答是:你好,Unity有本身的GC機制,爲了不頻繁向操做系統申請/釋放內存,Reserved Mono值會保持在必定區間內,達到某些條件或在某些特殊狀況纔會觸發GC。 又問了性能狗的技術,回答是:內存池管理邏輯都是同樣的,屬於上層管理同樣。它們只是中間語言不同而已,也是隻漲不降。問了其餘2個大佬,都是說IL2CPP衝高會降低。如今很困惑,求解答。性能
A:看下來題主說的內存衝高不降,涉及兩個指標,一個是Profiler裏的Reserved Mono,一個是設備內存(PSS)。目前確實沒有權威的文檔說明這一點,因此下面經過真實數據來講明一下。測試
先說第一個(Reserved Mono)。字體
- 在Script Backend是Mono的狀況下,若是選擇的是舊版本里的Mono 2.x,或者新版本里的 .Net 3.5(Runtime Version),那麼這個值是隻升不降的。好比這個數據,Unused已經很高了,但也不會降低:
- 一樣在Script Backend是Mono的狀況下,若是選擇的是.Net 4.x (Runtime Version),那麼這個值是能夠降低的(但不肯定具體是從哪一個版本開始的)。好比這個數據,能夠看出雖然會降低,也並非頻繁執行降低操做的:
- 最後Script Backend是IL2CPP的狀況下,那麼這個值也是能夠降低的。好比這個數據,看上去和上面的狀況相差不是太大:
而對於第二個,設備內存。這個就和安卓系統的內存管理機制有關了,即便Unity把Reserved Mono下降了,減小了自身的內存佔用,系統也不必定會當即會把這塊內存釋放,因此這裏的行爲就很難說清楚了。
該回答由UWA提供網站
Q:跑了兩個多小時,使用UWA GOT查看,最大的內存泄漏竟然發生在Debug.LogWarning,這個合理嗎? ui
A:頗有可能你的Log被索引了,好比被全局變量索引,而後你的Log還在不斷增長。
該回答由UWA提供
Q:真機調試的時候,Profiler中的Built_in Resources中會顯示好比Arial字體的佔用,請問下這部分的開銷須要關注嗎?spa
A:通常都不須要,大部分是Developement Build引入的,好比題主所說的Arial字體。
該回答由UWA提供
Q:在Unity 2018.3.7中使用了Unity自帶的VideoPlayer來播放視頻,項目和安卓工程進行了融合,在華爲P30手機上沒法播放視頻。操作系統
請問有人知道怎麼解決嗎?或者若是誰手中有華爲P30能夠測試,麻煩幫忙測試一下,或者能幫我給一個運行時候沒法播放給的信息提示,感謝。插件
A1:咱們也遇到一樣的問題,嘗試過:3d
- 降分辨率、降碼率
- 放到Asset目錄下使用內置轉碼
- 更換文件格式(WebM)
- 使用Android設置的硬件解碼
都沒有解決問題,遠程調試也看不出異常。後面放棄原生VideoPlayer轉用播放插件,沒有相似問題,目前看起來都挺正常。想來Unity內置的解碼在部分機型上水土不服,等其餘大佬的解答。
感謝王宇@UWA問答社區提供了回答A2:H.264 Main Profile 4.1 / No CABAC / 2000Kbps / 720p,咱們項目用這個視頻格式的配置,基本上沒出過問題,可是iOS上有3%左右的閃退率,徹底無解。安卓上過濾掉不支持ES 3.0的設備(不播放)以後,反而至關地穩。另外,能夠考慮國內大廠常常用的AV Pro插件,或者日本人常常用的CRI Video插件。
感謝鄭昊@UWA問答社區提供了回答
Q:圖集名是Chapter,但我沒有在UWA GOT的Assets下的Texture欄中看到Chapter這個Name。這會是什麼緣由呢?
A:多是圖集合並無生效,能夠檢查一下這個選項。
該回答由UWA提供
今天的分享就到這裏。固然,生有涯而知無涯。在漫漫的開發週期中,您看到的這些問題也許都只是冰山一角,咱們早已在UWA問答網站上準備了更多的技術話題等你一塊兒來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之「石」,也能攻你之「玉」。
官網:www.uwa4d.com
官方技術博客:blog.uwa4d.com
官方問答社區:answer.uwa4d.com
UWA學堂:edu.uwa4d.com 官方技術QQ羣:793972859(原羣已滿員)