FPerformanceTrackingChart

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()](API\Runtime\Engine\FPerformanceTrackingChart\AccumulateWith) as it accumulates each measure from another chart.

Windows
MacOS
Linux

Inheritance Hierarchy

IPerformanceDataConsumer

FPerformanceTrackingChart

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Public/ChartCreation.h

Include

#include "ChartCreation.h"

Syntax

class FPerformanceTrackingChart : public IPerformanceDataConsumer

Remarks

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.

Variables

Name Description

Public variable

double

 

AccumulatedChartTime

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

Public variable

bool

 

bIsChartingPaused

Public variable

FDateTime

 

CaptureStartTime

Start time of the capture

Public variable

FString

 

ChartLabel

The mode being tracked by this chart.

Public variable

FString

 

DeviceProfileName

Public variable

FDelegateHandle

 

DeviceProfilesUpdatedDelegateHandle

Public variable

FHistogram

 

DynamicResHistogram

Hitch time histogram (in seconds)

Public variable

int

 

FramesDisregarded

Number of frames that were disregarded because the frame was too long.

Public variable

FHistogram

 

FrametimeHistogram

Frame time histogram (in seconds)

Public variable

FHistogram

 

HitchTimeHistogram

Hitch time histogram (in seconds)

Public variable

int32

 

MaxDrawCalls

Total number of draw calls made

Public variable

int32

 

MaxDrawnPrimitives

Total number of primitives drawn

Public variable

double

 

MaxFlushAsyncLoadingTime

Public variable

int32

 

MaxPlayerTicks

Total number of player ticks (note: it is up to the game to populate this field)

Public variable

int32

 

MinDrawCalls

Public variable

int32

 

MinDrawnPrimitives

Public variable

int32

 

MinPlayerTicks

Public variable

uint32

 

NumFramesBound_GameThread

Number of frames for each time of

Public variable

uint32

 

NumFramesBound_GPU

Public variable

uint32

 

NumFramesBound_RenderThread

Public variable

uint32

 

NumFramesBound_RHIThread

Public variable

int

 

StartBatteryLevel

Public variable

float

 

StartTemperatureLevel

Public variable

int

 

StopBatteryLevel

Public variable

float

 

StopTemperatureLevel

Public variable

double

 

TimeDisregarded

Total time (sec) that were disregarded because the frame was too long.

Public variable

int32

 

TotalDrawCalls

Public variable

int64

 

TotalDrawnPrimitives

Public variable

int32

 

TotalFlushAsyncLoadingCalls

Public variable

double

 

TotalFlushAsyncLoadingTime

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

Public variable

double

 

TotalFramesBoundTime_GameThread

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

Public variable

double

 

TotalFramesBoundTime_GPU

Public variable

double

 

TotalFramesBoundTime_RenderThread

Public variable

double

 

TotalFramesBoundTime_RHIThread

Public variable

double

 

TotalFrameTime_GameThread

Total time spent on each thread (in seconds)

Public variable

double

 

TotalFrameTime_GPU

Public variable

double

 

TotalFrameTime_RenderThread

Public variable

double

 

TotalFrameTime_RHIThread

Public variable

int32

 

TotalGameThreadBoundHitchCount

Total number of hitches bound by each kind of thing

Public variable

int32

 

TotalGPUBoundHitchCount

Public variable

int32

 

TotalPlayerTicks

Public variable

int32

 

TotalRenderThreadBoundHitchCount

Public variable

int32

 

TotalRHIThreadBoundHitchCount

Public variable

uint32

 

TotalSyncLoadCount

Total number of sync loads

Constructors

Name Description

Public function

FPerformanceTrackingChart()

Public function

FPerformanceTrackingChart

(
    const FDateTime& InStartTime,
    const FString& InChartLabel
)

Destructors

Name Description

Public function Virtual

~FPerformanceTrackingChart()

Functions

Name Description

Public function

void

 

AccumulateWith

(
    const FPerformanceTrackingChart& C...
)

Public function

void

 

ChangeLabel

(
    const FString& NewLabel
)

Public function

void

 

DumpChartsToOutputLog

(
    double WallClockElapsed,
    const TArray< const FPerformanceTra...,
    const FString& InMapName
)

Dumps the FPS chart information to the log.

Public function Const

void

 

DumpChartToAnalyticsParams

(
    const FString& InMapName,
    TArray< struct FAnalyticsEventAttri...,
    bool bIncludeClientHWInfo,
    bool bIncludeHistograms
)

Dumps the FPS chart information to an analytic event param array.

Public function

void

 

DumpFPSChart

(
    const FString& InMapName
)

Public function Const

double

 

GetAverageFramerate()

Public function Const

double

 

GetAvgHitchesPerMinute()

Public function Const

double

 

GetAvgHitchFrameLength()

Public function Const

int64

 

GetNumFrames()

Public function Const

int64

 

GetNumHitches()

Public function Const

double

 

GetPercentMissedVSync

(
    int32 TargetFPS
)

Public function Const

int64

 

GetTotalHitchFrameTime()

Public function Const

double

 

GetTotalTime()

Public function

void

 

OnDeviceProfileManagerUpdated()

Public function

void

 

PauseCharting()

Public function

void

 

Reset

(
    const FDateTime& InStartTime
)

Discard all accumulated data.

Public function

void

 

ResumeCharting()

Overridden from IPerformanceDataConsumer

Name Description

Public function Virtual

void

 

ProcessFrame

(
    const FFrameData& FrameData
)

Public function Virtual

void

 

StartCharting()

Public function Virtual

void

 

StopCharting()

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback