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