我是靠谱客的博主 友好钢笔,最近开发中收集的这篇文章主要介绍UE4内存检测工具使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

UE4提供了2个工具用于检测内存使用情况,这里记录下使用方法:

1.MemReport命令:

直接在UE4编辑器窗口的命令控制台上输入MemReport或MemReport -full即可得到内存分析报告。MemReport -full 会得到更加详细的分析报告。报告保存在Game/Saved/Profiling/MemReports目录下,文件格式为.memreport,使用文本编辑器就能打开查看。

MemReport这个指令可以在引擎目录下的EngineConfigBaseEngine.ini中查看并根据需要进行修改和定制。

MemReport的内存分析报告中包含了内存使用总量、对象列表和内存使用情况、Actor数量及信息等。我们可以隔一段时间使用MemReport统计一下内存,对比一下二者差异排查是否有内存泄漏。

2.MemoryProfiler工具:

这个工具需要手动编译一下,打开 EngineSourceProgramsMemoryProfiler2MemoryProfiler2.sln 工程文件,然后编译。编译完成后的可执行文件MemoryProfiler2.exe位于 EngineProgramsMemoryProfiler2Binaries 目录下。

打开Malloc Profiler有两种方式:

1)一种是在要编译的工程修改引擎和项目对应的xxx.Target.cs,在其构造函数中增加

bUseMallocProfiler = true;
bOmitFramePointers = false;
然后编译即可;

2)另外一种方式是在 EngineSavedUnrealBuildToolBuildConfiguration.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内存检测工具使用的全部内容,希望文章能够帮你解决UE4内存检测工具使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部