UE4 LowLevelMemoryTracker(LLMT)

LLMT

LLM目前有两个跟踪器。每个跟踪器都有自己的分配映射和标记堆栈。默认跟踪器适用于引擎的所有分配。在这两个跟踪器中,它的级别较高并记录通过 FMemory 类函数 Malloc 进行的分配。该跟踪器可为 stat LLM 和 stat LLMFULL 控制台命令提供统计信息。平台跟踪器是较低级别的版本,它记录从OS进行的所有分配。例如,它会跟踪 Binned2 等函数进行的内部分配。因此,默认跟踪器统计信息是平台跟踪器统计信息的子集。

UE4 官网

LLMT
使用 -LLMCSV 命令行参数时,.CSV 文件将写入 saved/profiling/llm/。该文件将包含每个标记的列,以MB为单位显示当前值。每隔5秒写一个新行(默认情况下)。此频率可以使用 LLM.LLMWriteInterval 控制台变量更改

  1. -LLM: bIsDisabled
  2. -LLMCSV: bCsvWriterEnabled,同时使用FLLMCsvWriter

初始化

FLowLevelMemTracker() + FLLMAllocator::Initialise()
 --> FLowLevelMemTracker::InitialiseTrackers() + FLLMTracker::Initialise()


GetTracker(ELLMTracker::Platform)->SetTotalTags(ELLMTag::PlatformUntaggedTotal, ELLMTag::PlatformTrackedTotal);
GetTracker(ELLMTracker::Default)->SetTotalTags(ELLMTag::UntaggedTotal, ELLMTag::TrackedTotal);
  1. 构造FLowLevelMemTracker和FLLMAllocator
  2. 初始化Tags
    LLM init
  3. UnrealMemory.h 平台接口,每一个平台都需要分配内存
  4. FMemory::GCreateMalloc() -> FMemory_GCreateMalloc_ThreadSave() -> FPlatformMemory::BaseAllocator()[Windows] --> FMallocBinned2() --> FLLMScope::Init --> FLowLevelMemTracker::Get()–>Construt()
  5. FPlatformMemory::GetConstants(): 获取PageSize,TotalPhysical,TotalVirtual等数据

Init

  1. FLLMTracker* Trackers[(int32)ELLMTracker::Max]: 存放两个一个Default,另一个是Platform的
  2. FLLMAllocator 每个类都有引用到
  3. uint64 PlatformProcessMemory = PlatformStats.UsedVirtual; // virtual is working set + paged out memory

词汇

  1. 虚拟内存 = Working Set + Page Out Memory
  2. ProgramSize: 代码,变量,Stacked Memory存储等存储大小
  3. WokingSetSize = Physical Memory
  4. PlatformProcessMemory: 不同平台获取的值不一样,Windows平台下,代表虚拟内存

每5秒更新

//控制命令 变量
TAutoConsoleVariable<int32> CVarLLMWriteInterval(
	TEXT("LLM.LLMWriteInterval"),
	5,
	TEXT("The number of seconds between each li
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值