UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FPerformanceTrackingChart Class Reference

#include <ChartCreation.h>

+ Inheritance diagram for FPerformanceTrackingChart:

Public Member Functions

ENGINE_API FPerformanceTrackingChart ()
 
ENGINE_API FPerformanceTrackingChart (const FDateTime &InStartTime, const FString &InChartLabel)
 
virtual ENGINE_API ~FPerformanceTrackingChart ()
 
ENGINE_API void Reset (const FDateTime &InStartTime)
 
ENGINE_API void AccumulateWith (const FPerformanceTrackingChart &Chart)
 
double GetTotalTime () const
 
int64 GetNumFrames () const
 
double GetAverageFramerate () const
 
int64 GetNumHitches () const
 
ENGINE_API double GetTotalHitchFrameTime (bool bSubtractHitchThreshold=true) const
 
double GetPercentHitchTime (bool bSubtractHitchThreshold=true) const
 
double GetPercentMissedVSync (int32 TargetFPS) const
 
double GetAvgHitchesPerMinute () const
 
double GetAvgHitchFrameLength () const
 
ENGINE_API double GetPercentFramesIOBusy (int32 StartingBin=0) const
 
void ChangeLabel (const FString &NewLabel)
 
ENGINE_API void DumpFPSChart (const FString &InMapName)
 
ENGINE_API void DumpChartToAnalyticsParams (const FString &InMapName, TArray< struct FAnalyticsEventAttribute > &InParamArray, bool bIncludeClientHWInfo, bool bIncludeHistograms=true) const
 
ENGINE_API void DumpChartsToOutputLog (double WallClockElapsed, const TArray< const FPerformanceTrackingChart * > &Charts, const FString &InMapName)
 
virtual ENGINE_API void StartCharting () override
 
virtual ENGINE_API void ProcessFrame (const FFrameData &FrameData) override
 
virtual ENGINE_API void StopCharting () override
 
ENGINE_API void PauseCharting ()
 
ENGINE_API void ResumeCharting ()
 
- Public Member Functions inherited from IPerformanceDataConsumer
virtual ~IPerformanceDataConsumer ()
 

Public Attributes

FString ChartLabel
 
FHistogram FrametimeHistogram
 
FHistogram HitchTimeHistogram
 
FHistogram DynamicResHistogram
 
FHistogram AsyncPackageQueueHistogram
 
uint32 NumFramesBound_GameThread
 
uint32 NumFramesBound_RenderThread
 
uint32 NumFramesBound_RHIThread
 
uint32 NumFramesBound_GPU
 
double TotalFramesBoundTime_GameThread
 
double TotalFramesBoundTime_RenderThread
 
double TotalFramesBoundTime_RHIThread
 
double TotalFramesBoundTime_GPU
 
double TotalFrameTime_GameThread
 
double TotalFrameTime_RenderThread
 
double TotalFrameTime_RHIThread
 
double TotalFrameTime_GPU
 
double TotalFlushAsyncLoadingTime
 
int32 TotalFlushAsyncLoadingCalls
 
double MaxFlushAsyncLoadingTime
 
uint32 TotalSyncLoadCount
 
int32 TotalGameThreadBoundHitchCount
 
int32 TotalRenderThreadBoundHitchCount
 
int32 TotalRHIThreadBoundHitchCount
 
int32 TotalGPUBoundHitchCount
 
int32 MaxDrawCalls
 
int32 MinDrawCalls
 
int32 TotalDrawCalls
 
int32 MaxPlayerTicks
 
int32 MinPlayerTicks
 
int32 TotalPlayerTicks
 
int32 MaxVehicleTicks
 
int32 TotalVehicleTicks
 
int32 MaxDrawnPrimitives
 
int32 MinDrawnPrimitives
 
int64 TotalDrawnPrimitives
 
FDateTime CaptureStartTime
 
double AccumulatedChartTime
 
double TimeDisregarded
 
int FramesDisregarded
 
float StartTemperatureLevel
 
float StopTemperatureLevel
 
int StartBatteryLevel
 
int StopBatteryLevel
 
FString DeviceProfileName
 
bool bIsChartingPaused
 
uint32 NumFramesAtCriticalMemoryPressure
 
uint64 MaxPhysicalMemory
 
uint64 MaxVirtualMemory
 
uint64 MinPhysicalMemory
 
uint64 MinVirtualMemory
 
uint64 MinAvailablePhysicalMemory
 
uint64 TotalPhysicalMemoryUsed
 
uint64 TotalVirtualMemoryUsed
 

Detailed Description

Chart for a single portion of gameplay (e.g., gameplay or in-game-shop or settings menu open) WARNING: If you add members here, you MUST also update AccumulateWith() as it accumulates each measure from another chart.

Constructor & Destructor Documentation

◆ FPerformanceTrackingChart() [1/2]

FPerformanceTrackingChart::FPerformanceTrackingChart ( )

◆ FPerformanceTrackingChart() [2/2]

FPerformanceTrackingChart::FPerformanceTrackingChart ( const FDateTime InStartTime,
const FString &  InChartLabel 
)

◆ ~FPerformanceTrackingChart()

FPerformanceTrackingChart::~FPerformanceTrackingChart ( )
virtual

Member Function Documentation

◆ AccumulateWith()

void FPerformanceTrackingChart::AccumulateWith ( const FPerformanceTrackingChart Chart)

◆ ChangeLabel()

void FPerformanceTrackingChart::ChangeLabel ( const FString &  NewLabel)
inline

◆ DumpChartsToOutputLog()

void FPerformanceTrackingChart::DumpChartsToOutputLog ( double  WallClockElapsed,
const TArray< const FPerformanceTrackingChart * > &  Charts,
const FString &  InMapName 
)

◆ DumpChartToAnalyticsParams()

void FPerformanceTrackingChart::DumpChartToAnalyticsParams ( const FString &  InMapName,
TArray< struct FAnalyticsEventAttribute > &  InParamArray,
bool  bIncludeClientHWInfo,
bool  bIncludeHistograms = true 
) const

◆ DumpFPSChart()

void FPerformanceTrackingChart::DumpFPSChart ( const FString &  InMapName)

◆ GetAverageFramerate()

double FPerformanceTrackingChart::GetAverageFramerate ( ) const
inline

◆ GetAvgHitchesPerMinute()

double FPerformanceTrackingChart::GetAvgHitchesPerMinute ( ) const
inline

◆ GetAvgHitchFrameLength()

double FPerformanceTrackingChart::GetAvgHitchFrameLength ( ) const
inline

◆ GetNumFrames()

int64 FPerformanceTrackingChart::GetNumFrames ( ) const
inline

◆ GetNumHitches()

int64 FPerformanceTrackingChart::GetNumHitches ( ) const
inline

◆ GetPercentFramesIOBusy()

double FPerformanceTrackingChart::GetPercentFramesIOBusy ( int32  StartingBin = 0) const

◆ GetPercentHitchTime()

double FPerformanceTrackingChart::GetPercentHitchTime ( bool  bSubtractHitchThreshold = true) const
inline

◆ GetPercentMissedVSync()

double FPerformanceTrackingChart::GetPercentMissedVSync ( int32  TargetFPS) const
inline

◆ GetTotalHitchFrameTime()

double FPerformanceTrackingChart::GetTotalHitchFrameTime ( bool  bSubtractHitchThreshold = true) const

Sum of all recorded hitch lengths (in seconds)

Parameters
bSubtractHitchThresholdBias towards larger hitches by removing "acceptable" frame time

◆ GetTotalTime()

double FPerformanceTrackingChart::GetTotalTime ( ) const
inline

◆ PauseCharting()

void FPerformanceTrackingChart::PauseCharting ( )

◆ ProcessFrame()

void FPerformanceTrackingChart::ProcessFrame ( const FFrameData FrameData)
overridevirtual

◆ Reset()

void FPerformanceTrackingChart::Reset ( const FDateTime InStartTime)

◆ ResumeCharting()

void FPerformanceTrackingChart::ResumeCharting ( )

◆ StartCharting()

void FPerformanceTrackingChart::StartCharting ( )
overridevirtual

◆ StopCharting()

void FPerformanceTrackingChart::StopCharting ( )
overridevirtual

Member Data Documentation

◆ AccumulatedChartTime

double FPerformanceTrackingChart::AccumulatedChartTime

Total accumulated raw (including idle) time spent with the chart registered

◆ AsyncPackageQueueHistogram

FHistogram FPerformanceTrackingChart::AsyncPackageQueueHistogram

◆ bIsChartingPaused

bool FPerformanceTrackingChart::bIsChartingPaused

◆ CaptureStartTime

FDateTime FPerformanceTrackingChart::CaptureStartTime

Start time of the capture

◆ ChartLabel

FString FPerformanceTrackingChart::ChartLabel

◆ DeviceProfileName

FString FPerformanceTrackingChart::DeviceProfileName

WARNING: This value could technically change while data collection is ongoing. Hanlding such changes is not handled by this code.

◆ DynamicResHistogram

FHistogram FPerformanceTrackingChart::DynamicResHistogram

◆ FramesDisregarded

int FPerformanceTrackingChart::FramesDisregarded

Number of frames that were disregarded because the frame was too long. This is probably a clock glitch or an app returning from background, suspend, etc, and can really skew the data.

◆ FrametimeHistogram

FHistogram FPerformanceTrackingChart::FrametimeHistogram

◆ HitchTimeHistogram

FHistogram FPerformanceTrackingChart::HitchTimeHistogram

◆ MaxDrawCalls

int32 FPerformanceTrackingChart::MaxDrawCalls

Total number of draw calls made

◆ MaxDrawnPrimitives

int32 FPerformanceTrackingChart::MaxDrawnPrimitives

Total number of primitives drawn

◆ MaxFlushAsyncLoadingTime

double FPerformanceTrackingChart::MaxFlushAsyncLoadingTime

◆ MaxPhysicalMemory

uint64 FPerformanceTrackingChart::MaxPhysicalMemory

◆ MaxPlayerTicks

int32 FPerformanceTrackingChart::MaxPlayerTicks

Total number of player ticks (note: it is up to the game to populate this field) WARNING: Legacy fields. These should more properly be handled by deriving the class and providing game-specific data as necessary.

◆ MaxVehicleTicks

int32 FPerformanceTrackingChart::MaxVehicleTicks

Total number of vehicle ticks (note: it is up to the game to populate this field) WARNING: Legacy field. These should more properly be handled by deriving the class and providing game-specific data as necessary.

◆ MaxVirtualMemory

uint64 FPerformanceTrackingChart::MaxVirtualMemory

◆ MinAvailablePhysicalMemory

uint64 FPerformanceTrackingChart::MinAvailablePhysicalMemory

◆ MinDrawCalls

int32 FPerformanceTrackingChart::MinDrawCalls

◆ MinDrawnPrimitives

int32 FPerformanceTrackingChart::MinDrawnPrimitives

◆ MinPhysicalMemory

uint64 FPerformanceTrackingChart::MinPhysicalMemory

◆ MinPlayerTicks

int32 FPerformanceTrackingChart::MinPlayerTicks

◆ MinVirtualMemory

uint64 FPerformanceTrackingChart::MinVirtualMemory

◆ NumFramesAtCriticalMemoryPressure

uint32 FPerformanceTrackingChart::NumFramesAtCriticalMemoryPressure

◆ NumFramesBound_GameThread

uint32 FPerformanceTrackingChart::NumFramesBound_GameThread

Number of frames for each time of <boundtype>

◆ NumFramesBound_GPU

uint32 FPerformanceTrackingChart::NumFramesBound_GPU

◆ NumFramesBound_RenderThread

uint32 FPerformanceTrackingChart::NumFramesBound_RenderThread

◆ NumFramesBound_RHIThread

uint32 FPerformanceTrackingChart::NumFramesBound_RHIThread

◆ StartBatteryLevel

int FPerformanceTrackingChart::StartBatteryLevel

◆ StartTemperatureLevel

float FPerformanceTrackingChart::StartTemperatureLevel

◆ StopBatteryLevel

int FPerformanceTrackingChart::StopBatteryLevel

◆ StopTemperatureLevel

float FPerformanceTrackingChart::StopTemperatureLevel

◆ TimeDisregarded

double FPerformanceTrackingChart::TimeDisregarded

Total time (sec) that were disregarded because the frame was too long. This is probably a clock glitch or an app returning from background, suspend, etc, and can really skew the data.

◆ TotalDrawCalls

int32 FPerformanceTrackingChart::TotalDrawCalls

◆ TotalDrawnPrimitives

int64 FPerformanceTrackingChart::TotalDrawnPrimitives

◆ TotalFlushAsyncLoadingCalls

int32 FPerformanceTrackingChart::TotalFlushAsyncLoadingCalls

◆ TotalFlushAsyncLoadingTime

double FPerformanceTrackingChart::TotalFlushAsyncLoadingTime

Total time spent flushing async loading (in seconds), and call count

◆ TotalFramesBoundTime_GameThread

double FPerformanceTrackingChart::TotalFramesBoundTime_GameThread

Time spent bound on each kind of thing (in seconds)

◆ TotalFramesBoundTime_GPU

double FPerformanceTrackingChart::TotalFramesBoundTime_GPU

◆ TotalFramesBoundTime_RenderThread

double FPerformanceTrackingChart::TotalFramesBoundTime_RenderThread

◆ TotalFramesBoundTime_RHIThread

double FPerformanceTrackingChart::TotalFramesBoundTime_RHIThread

◆ TotalFrameTime_GameThread

double FPerformanceTrackingChart::TotalFrameTime_GameThread

Total time spent on each thread (in seconds)

◆ TotalFrameTime_GPU

double FPerformanceTrackingChart::TotalFrameTime_GPU

◆ TotalFrameTime_RenderThread

double FPerformanceTrackingChart::TotalFrameTime_RenderThread

◆ TotalFrameTime_RHIThread

double FPerformanceTrackingChart::TotalFrameTime_RHIThread

◆ TotalGameThreadBoundHitchCount

int32 FPerformanceTrackingChart::TotalGameThreadBoundHitchCount

Total number of hitches bound by each kind of thing

◆ TotalGPUBoundHitchCount

int32 FPerformanceTrackingChart::TotalGPUBoundHitchCount

◆ TotalPhysicalMemoryUsed

uint64 FPerformanceTrackingChart::TotalPhysicalMemoryUsed

◆ TotalPlayerTicks

int32 FPerformanceTrackingChart::TotalPlayerTicks

◆ TotalRenderThreadBoundHitchCount

int32 FPerformanceTrackingChart::TotalRenderThreadBoundHitchCount

◆ TotalRHIThreadBoundHitchCount

int32 FPerformanceTrackingChart::TotalRHIThreadBoundHitchCount

◆ TotalSyncLoadCount

uint32 FPerformanceTrackingChart::TotalSyncLoadCount

Total number of sync loads

◆ TotalVehicleTicks

int32 FPerformanceTrackingChart::TotalVehicleTicks

◆ TotalVirtualMemoryUsed

uint64 FPerformanceTrackingChart::TotalVirtualMemoryUsed

The documentation for this class was generated from the following files: