Files
UnrealEngineUWP/Engine/Source/Developer/TraceServices/Private/Modules/MemoryModule.cpp
ionut matasaru 4688b36357 [Insights] Added initial implementation for MetadataProvider.
#rb Johan.Berg
#preflight 62738e8e432d5c693e7bd2a3

[CL 20055895 by ionut matasaru in ue5-main branch]
2022-05-05 06:14:08 -04:00

55 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MemoryModule.h"
#include "Analyzers/AllocationsAnalysis.h"
#include "Analyzers/CallstacksAnalysis.h"
#include "Analyzers/MemoryAnalysis.h"
#include "Analyzers/ModuleAnalysis.h"
#include "Model/AllocationsProvider.h"
#include "Model/CallstacksProvider.h"
#include "Model/MetadataProvider.h"
#include "TraceServices/Model/AnalysisSession.h"
namespace TraceServices
{
static const FName MemoryModuleName("TraceModule_Memory");
void FMemoryModule::GetModuleInfo(FModuleInfo& OutModuleInfo)
{
OutModuleInfo.Name = MemoryModuleName;
OutModuleInfo.DisplayName = TEXT("Memory");
}
void FMemoryModule::OnAnalysisBegin(IAnalysisSession& Session)
{
// LLM Tag Stats
FMemoryProvider* MemoryProvider = new FMemoryProvider(Session);
Session.AddProvider(GetMemoryProviderName(), MemoryProvider);
Session.AddAnalyzer(new FMemoryAnalyzer(Session, MemoryProvider));
// Module
Session.AddAnalyzer(new FModuleAnalyzer(Session));
// Callstack
FCallstacksProvider* CallstacksProvider = new FCallstacksProvider(Session);
Session.AddProvider(GetCallstacksProviderName(), CallstacksProvider);
Session.AddAnalyzer(new FCallstacksAnalyzer(Session, CallstacksProvider));
// Metadata
FMetadataProvider* MetadataProvider = new FMetadataProvider(Session);
Session.AddProvider(GetMetadataProviderName(), MetadataProvider);
// Allocations
FAllocationsProvider* AllocationsProvider = new FAllocationsProvider(Session, *MetadataProvider);
Session.AddProvider(GetAllocationsProviderName(), AllocationsProvider);
Session.AddAnalyzer(new FAllocationsAnalyzer(Session, *AllocationsProvider, *MetadataProvider));
}
void FMemoryModule::GetLoggers(TArray<const TCHAR*>& OutLoggers)
{
OutLoggers.Add(TEXT("Memory"));
}
} // namespace TraceServices