精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Unity Profiler分析內存使用狀況疑問解答

汽車玩家 ? 來源:SegmentFault ? 作者:SegmentFault ? 2020-01-31 09:52 ? 次閱讀

在使用Unity開發游戲的過程中,借助Profiler來分析內存使用狀況是至關重要的。但許多開發者可能還對Profiler中各項數據表示的含義不甚明確,Unity官方的技術工程師柳振東,將針對Profiler內存分析相關的問題及解答,與大家進行分享。

要想完全發揮Profiler內存分析的威力,首先要做的就是了解Profiler展示的數據所表達的含義,以及到底哪些模塊所使用的內存才會被統計到Unity的Profiler中。Profiler涉及到的知識點還有很多,我們今天先從中挑選一些大家常有的疑問來作解答。

Unity Profiler分析內存使用狀況疑問解答

1. 在Unity的Profiler中看到的總內存使用和我使用其它工具看到的系統內存占用不太一樣,這是為什么呢?

Profiler中看到的內存是通過Unity自身引擎看到的內存分配,凡是引擎Allocation和Deallocation的內存,引擎均有記錄,所以我們可以給出確切的引擎內存占用信息。但是,仍有其他內存我們是無法獲知的。

比如,如果引擎使用了第三方庫,那么庫分配的內存我們是無法進行統計的。另外,在移動設備上大家看到的內存,其實都要比Profiler大很多,這是因為不管是通過Xcode的Instrument還是通過Android的USS,其記錄的真實物理內存都包括兩部分,一個是真實Used的物理內存,另一個則是緩存的(Cached)的物理內存。這是OS所決定的,Android和iOS系統在資源不使用時均不會立即將其進行回收,而是將其放在緩存的物理內存中,以便下次再用時,可以快速地加載。當系統發現App的內存不夠用時,才會在底層調用一個memory killer線程來輪詢緩存物理內存,進而為app來清理內存。而Unity Profiler記錄的則是目前真實使用的物理內存,即上述所說的第一部分。因此,當游戲運行時間越長,Profiler分配內存和通過其他軟件獲得的系統內存差距會越大。

因此,只要所使用的第三方庫不存在內存泄露問題,我們一般都建議只需要查看Profiler即可,只要Profile中的內存可以保證正常升高和回落,那么引擎這邊分配的內存就是沒有問題的。

2. 我們做項目的時候發現有時profiler中System.ExecutableAndDlls這項占用很多,有什么解決辦法嗎?

“System.ExecutableAndDlls”該項顯示的是執行文件和所調用的庫(物理、渲染、IO等系統庫)的總和。請不用擔心該選項的數值,因為很多Application均在共用這些庫,并且它對于真實游戲的內存壓力非常小,而且也不會導致OS因為該內存來Kill掉游戲。

3. 為什么在Profiler中的Simple模式下,Used Total的數值不等于其右邊各項Unity,Mono,GfxDriver,FMOD與Profiler總和呢?

其實在Unity中,Used Total的計算公式為Used Total = Unity + Mono + GfxDriver + Profiler + additionalUsedMemory。公式中的additionalUsedMemory項在profiler中并沒有顯示,因為這一項一般情況下都為0,只在某些特殊發布平臺下才會有數值(一般Android,PC和IOS都為0)。因此一般情況下Used Total的值就是除FMOD之外各項的總和了。當然,這個規則對于Reserved Total是同樣適用的。

4. 我們項目的資源主要使用AssetBundle動態加載資源,發現Profiler中Detailed模式下PersistentManager.Remapper一項占用時多時少,這一項主要是做什么的呢?

Remapper主要提供文件的持久化存儲,包括各種序列化的asset,項目的setting文件等,維護文件系統的中的文件與內存中數據的對應關系。那么如果項目大量使用AssetBundle的話,在對AssetBundle進行Unload之前都會需要占用Remapper的內存的。而Remapper本身的實現使用內存池,其數值只會增大,那么為了使Remapper占用的內存保持在一個穩定的數值上,我們需要每次在加載一定數量的AssetBundle之后進行Unload操作,而不要一次性把所有AssetBundle都加載后才調用Unload。(這樣的操作對維持整個mono heap的大小也是至關重要的,因為mono heap本身也是只增大不減小的)

5. 我們在Editor中調試項目的時候發現紋理的內存大小是其本身大小的兩倍,是因為Unity把內存和顯存的大小都計算進去了嗎?

其實并不是這個原因,因為Editor本身會保有紋理的一份內存,在Editor下進行profiler會把Editor本身所使用的紋理大小也計算進去,因此會有內存變為兩倍的情況。我們官方并不建議在Editor下對項目進行性能調試,而是務必要在真機上跑編譯好的項目,然后連接profiler進行調試,只有這樣才能得到真正精確的測試數據。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    2998

    瀏覽量

    73882
  • Unity
    +關注

    關注

    1

    文章

    127

    瀏覽量

    21773
收藏 人收藏

    評論

    相關推薦

    HarmonyOS實戰開發-內存快照Snapshot Profiler功能使用指導

    DevEco Studio集成的DevEco Profiler性能調優工具(以下簡稱為Profiler),提供Time、Allocation、Snapshot、CPU等場景化分析任務類型。內存
    發表于 05-11 13:51

    使用Trepn Profiler工具分析Dragonboard410c的功耗和性能

    一些數據點。設置監控CPU、GPU和內存的負載情況,同時監控耗電情況,再運行Firefox火狐瀏覽器可以清楚的看到每個數據點的實時使用情況,使用Trepn Profiler工具來分析Dragonboard410c是非常方便的。
    發表于 09-25 16:09

    Qualcomm Trepn Power Profiler常見問題分析總結

    以前對Trepn Power Profiler進行過簡單的介紹,這是Qualcomm開發的一個工具,主要對android設備的功耗和性能進行分析。今天簡單總結一下,在使用過程中比較常見的問題。 1.
    發表于 09-25 16:14

    使用Snapdragon Profiler工具分析Dragonboard410c

    之前簡單介紹了一下Snapdragon Profiler工具,現在我們實際用它來分析一下Dragonboard410c。啟動和配置1、我的系統是ubuntu16.04,直接在Terminal進入
    發表于 09-25 16:14

    為什么Motor Profiler實用程序無法使用上述BLDC電機完成Profiler序列?

    ,4000 rpm通過此設置,Motor Profiler無法成功完成分析序列。在仿形循環期間,在確定電氣模型期間,電動機每次仿形嘗試都變慢。序列因消息而停止:分析序列需要很長時間。為什么Motor
    發表于 06-05 11:30

    labview與unity通訊問題

    labview能與unity通訊嗎,求解答
    發表于 06-16 15:23

    直讀光譜儀疑問解答

      直讀光譜儀疑問解答   1.直讀光譜儀測試出的合金分析曲線好壞怎么辨別?   主要看在作完工作曲線后,通過工作曲線的標樣的測定值與真值之間的差異,偏
    發表于 09-01 15:51 ?10次下載

    關于電池的一些疑問解答

    關于電池的一些疑問解答 (1)電池不用時,低溫冷藏,正確嗎?  錯誤,將電池低溫冷藏并不能夠延長電池的使用壽命
    發表于 11-13 14:25 ?573次閱讀

    投影機日常使用疑問匯總與解答

    投影機日常使用疑問匯總與解答 Q:投影機連接筆記本電腦, 無輸出影像?
    發表于 02-06 09:36 ?404次閱讀

    分析儀選購疑問解答分析

    如何在眾多型號的分析儀中選擇合適的一款需要多方面的考慮,本文將為您解答在挑選市場上各種分析儀時所遇到的疑問,并幫助您做出正確的選購決定。
    發表于 02-11 11:36 ?725次閱讀
    <b class='flag-5'>分析</b>儀選購<b class='flag-5'>疑問</b><b class='flag-5'>解答</b><b class='flag-5'>分析</b>

    華為BBU、RRU設備疑問解答

    華為BBU、RRU設備疑問解答,各位支持下哦!!!!!
    發表于 11-18 16:55 ?15次下載

    電視天線與電視接收300疑問解答

    關于對電視天線與電視接收300疑問解答
    發表于 03-17 15:25 ?29次下載
    電視天線與電視接收300<b class='flag-5'>疑問</b><b class='flag-5'>解答</b>

    如何使用QML Profiler分析QML應用

    在QML應用開發過程中,可以使用QML Profiler來查找應用程序中典型性能問題的原因,例如啟動慢、響應慢、用戶界面不流暢等。
    的頭像 發表于 09-13 11:37 ?2044次閱讀

    line_profiler性能分析工具簡單的使用

    line_profiler 是一個用于對函數進行逐行分析的模塊。Python 當前的分析工具僅僅支持一個函數的時間消耗分析
    的頭像 發表于 03-03 14:39 ?2367次閱讀
    line_<b class='flag-5'>profiler</b>性能<b class='flag-5'>分析</b>工具簡單的使用

    賽盛在線平臺疑問解答系列(二)

    02賽盛在線平臺疑問解答系列(二)sesOnlineSES前言賽盛技術于2024年10月17日隆重發布了最新產品《賽盛在線學習及工具應用平臺》,引起了廣大朋友的熱切關注。特別是平臺中的計算工具,更是
    的頭像 發表于 11-09 01:06 ?113次閱讀
    賽盛在線平臺<b class='flag-5'>疑問</b><b class='flag-5'>解答</b>系列(二)