UE4内存检测工具使用
UE4提供了2個工具用于檢測內存使用情況,這里記錄下使用方法:
1.MemReport命令:
直接在UE4編輯器窗口的命令控制臺上輸入MemReport或MemReport -full即可得到內存分析報告。MemReport -full 會得到更加詳細的分析報告。報告保存在Game/Saved/Profiling/MemReports目錄下,文件格式為.memreport,使用文本編輯器就能打開查看。
MemReport這個指令可以在引擎目錄下的\Engine\Config\BaseEngine.ini中查看并根據需要進行修改和定制。
MemReport的內存分析報告中包含了內存使用總量、對象列表和內存使用情況、Actor數量及信息等。我們可以隔一段時間使用MemReport統計一下內存,對比一下二者差異排查是否有內存泄漏。
2.MemoryProfiler工具:
這個工具需要手動編譯一下,打開 Engine\Source\Programs\MemoryProfiler2\MemoryProfiler2.sln 工程文件,然后編譯。編譯完成后的可執行文件MemoryProfiler2.exe位于 Engine\Programs\MemoryProfiler2\Binaries 目錄下。
打開Malloc Profiler有兩種方式:
1)一種是在要編譯的工程修改引擎和項目對應的xxx.Target.cs,在其構造函數中增加
bUseMallocProfiler = true;
bOmitFramePointers = false;
然后編譯即可;
2)另外一種方式是在 Engine\Saved\UnrealBuildTool\BuildConfiguration.xml 文件中,修改 bUseMallocProfiler 為 true,bOmitFramePointers 為 false。但是這種方式是全局性的,包括Editor都會打開 Malloc Profiler,所以不太推薦使用。
在編輯器窗口的命令控制臺上輸入 MPROF MARK 生成內存快照,也可以 MPROF MARK SnapshotName 來給快照指定名稱,輸入 MPROF STOP 命令停止內存監控。快照會保存在 Game/Saved/Profiling/ 目錄下生成以日期時間為后綴的目錄,目錄中包含 .mprof 內存記錄文件。
UE4也支持通過埋點的方式記錄需要關注的程序運行內存情況。先要在MallocProfiler.h文件中的 EProfilingPayloadSubType 的 SUBTYPE_LicenseeBase 后面添加一個枚舉類型 SUBTYPE_MY_TEST_TAG = 51,然后在MallocProfiler.cpp文件 FmallocProfiler中 添加一個函數:
void FMallocProfiler::SnapshotMemoryMyTestTag(const FString& Tag)
{
? ? if (GMallocProfiler && !GMallocProfiler->bEndProfilingHasBeenCalled)
? ? {
? ? ? ? GMallocProfiler->SnapshotMemory(SUBTYPE_MY_TEST_TAG, Tag);
? ? }
}
最后在需要埋點的程序中插入代碼即可:
MALLOC_PROFILER(FMallocProfiler::SnapshotMemoryMyTestTag(MyTest);)
運行上面生成的MemoryProfiler2.exe,點擊File -> Open 打開 .mprof 文件,然后點擊工具欄最后的 Go 按鈕即可分析內存。
總結
以上是生活随笔為你收集整理的UE4内存检测工具使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 内存性能检测工具
- 下一篇: 内存泄露检测工具