內(nèi)存性能分析器 (Memory Profiler)
Memory Profiler 中提供了兩種模式來檢查應(yīng)用程序的內(nèi)存使用情況。在下方面板左上角的下拉選單中可選擇模式。
Simple
Simple?視圖提供每個幀在整個 Unity 中的實時內(nèi)存使用量的簡單概況。

Unity 保留了可供分配的內(nèi)存池,以免過于頻繁向操作系統(tǒng)索取內(nèi)存。此部分顯示為保留量以及已用量。
此部分涵蓋的方面包括:
Unity:本機(jī) Unity 代碼中的分配所跟蹤的內(nèi)存量
Mono:托管代碼使用的總堆大小和已用堆大小。此內(nèi)存量是垃圾收集量
GfxDriver:驅(qū)動程序?qū)y理、渲染目標(biāo)、著色器和網(wǎng)格數(shù)據(jù)使用的估計內(nèi)存量。
FMOD:音頻驅(qū)動程序的估計內(nèi)存使用量
Profiler:用于性能分析器數(shù)據(jù)的內(nèi)存
顯示的數(shù)字與任務(wù)管理器或活動監(jiān)視器不同,因為 Memory Profiler 未對某些用途進(jìn)行跟蹤。這些用途包括一些驅(qū)動程序使用的內(nèi)存和用于可執(zhí)行代碼的內(nèi)存。
此性能分析器會顯示某些最常見的資源/對象類型的內(nèi)存統(tǒng)計信息。這些統(tǒng)計信息包括計數(shù)和已用內(nèi)存(主內(nèi)存和視頻內(nèi)存):
紋理 (Textures)
網(wǎng)格 (Meshes)
材質(zhì) (Materials)
動畫 (Animations)
音頻 (Audio)
對象計數(shù) (Object Count)
Object Count?是創(chuàng)建的對象總數(shù)。如果此數(shù)字隨著時間的推移而上升,表明游戲創(chuàng)建了一些永不銷毀的對象。
Detailed
Detailed?視圖用于創(chuàng)建當(dāng)前狀態(tài)的快照。使用?Take Sample?按鈕可捕獲詳細(xì)的內(nèi)存使用情況。獲取此數(shù)據(jù)需要一些時間,因此不要期望 Detailed 視圖能提供實時詳細(xì)信息。在采樣之后,Profiler 窗口將更新為樹視圖,可在其中查看內(nèi)存使用情況。

此視圖將顯示各個資源和游戲?qū)ο蟮膬?nèi)存使用情況。此外還顯示游戲?qū)ο笪挥趦?nèi)存中的原因。常見原因包括:
Assets:從用戶或本機(jī)代碼引用的資源
Built-in Resources:Unity Editor 資源或 Unity 默認(rèn)資源
Not Saved:標(biāo)記為 DontSave 的游戲?qū)ο?/p>
Scene Memory:游戲?qū)ο蠛透郊拥慕M件
Other:未在上述類別中標(biāo)記的游戲?qū)ο?/p>
單擊列表中的游戲?qū)ο罂稍?Project 或 Scene 視圖中查看該游戲?qū)ο蟆?/p>
在 Editor 中進(jìn)行性能分析時,Memory Profiler 顯示的所有數(shù)字都表示 Editor 中的內(nèi)存使用情況。這些數(shù)字通常比在播放器中運(yùn)行時更大,因為運(yùn)行 Unity Editor 會增加額外的內(nèi)存。如需了解應(yīng)用程序更精確的數(shù)字和內(nèi)存使用情況,請使用性能分析器連接來連接到正在運(yùn)行的播放器。這樣將給出目標(biāo)設(shè)備上的實際使用情況。
在?System.ExecutableAndDlls
?下報告的內(nèi)存是只讀內(nèi)存,因此操作系統(tǒng)可能會根據(jù)需要丟棄這些頁面,然后從文件系統(tǒng)重新加載它們。這樣可以降低內(nèi)存使用量,而且通常不會直接導(dǎo)致操作系統(tǒng)決定終止應(yīng)用程序。此外,其中一些頁面也可能與使用相同框架的其他應(yīng)用程序共享。