日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UE4内存检测工具使用

發布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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内存检测工具使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。