UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPerfCounters Class Referenceabstract

#include <PerfCountersModule.h>

+ Inheritance diagram for IPerfCounters:

Classes

struct  FJsonVariant
 
struct  Histograms
 

Public Types

enum  Flags : uint32 { Transient = (1 << 0) }
 
typedef TMap< FName, FHistogramTPerformanceHistogramMap
 

Public Member Functions

virtual ~IPerfCounters ()
 
virtual const FString & GetInstanceName () const =0
 
virtual double GetNumber (const FString &Name, double DefaultValue=0.0)=0
 
virtual void SetNumber (const FString &Name, double Value, uint32 Flags=0)=0
 
virtual void SetString (const FString &Name, const FString &Value, uint32 Flags=0)=0
 
virtual void SetJson (const FString &Name, const FProduceJsonCounterValue &Callback, uint32 Flags=0)=0
 
virtual FPerfCounterExecCommandCallbackOnPerfCounterExecCommand ()=0
 
virtual const TMap< FString, FJsonVariant > & GetAllCounters ()=0
 
virtual FString GetAllCountersAsJson ()=0
 
virtual void ResetStatsForNextPeriod ()=0
 
virtual TPerformanceHistogramMapPerformanceHistograms ()=0
 
virtual bool StartMachineLoadTracking ()=0
 
virtual bool StartMachineLoadTracking (double TickRate, const TArray< double > &FrameTimeHistogramBucketsMs)=0
 
virtual bool StopMachineLoadTracking ()=0
 
virtual bool ReportUnplayableCondition (const FString &ConditionDescription)=0
 
int32 Get (const FString &Name, int32 Val=0)
 
uint32 Get (const FString &Name, uint32 Val=0)
 
float Get (const FString &Name, float Val=0.0f)
 
double Get (const FString &Name, double Val=0.0)
 
int32 Increment (const FString &Name, int32 Add=1, int32 DefaultValue=0, uint32 Flags=IPerfCounters::Flags::Transient)
 Convenience method for incrementing a transient counter.
 
void Set (const FString &Name, int32 Val, uint32 Flags=0)
 
void Set (const FString &Name, uint32 Val, uint32 Flags=0)
 
void Set (const FString &Name, float Val, uint32 Flags=0)
 
void Set (const FString &Name, double Val, uint32 Flags=0)
 
void Set (const FString &Name, int64 Val, uint32 Flags=0)
 
void Set (const FString &Name, uint64 Val, uint32 Flags=0)
 
void Set (const FString &Name, const FString &Val, uint32 Flags=0)
 
void Set (const FString &Name, const FProduceJsonCounterValue &Callback, uint32 Flags=0)
 

Detailed Description

A programming interface for setting/updating performance counters

Member Typedef Documentation

◆ TPerformanceHistogramMap

Array used to store performance histograms.

Member Enumeration Documentation

◆ Flags

Enumerator
Transient 

Perf counter with this flag will be removed by "perfcounters clear" command

Constructor & Destructor Documentation

◆ ~IPerfCounters()

virtual IPerfCounters::~IPerfCounters ( )
inlinevirtual

Member Function Documentation

◆ Get() [1/4]

double IPerfCounters::Get ( const FString &  Name,
double  Val = 0.0 
)
inline

◆ Get() [2/4]

float IPerfCounters::Get ( const FString &  Name,
float  Val = 0.0f 
)
inline

◆ Get() [3/4]

int32 IPerfCounters::Get ( const FString &  Name,
int32  Val = 0 
)
inline

Get overloads

◆ Get() [4/4]

uint32 IPerfCounters::Get ( const FString &  Name,
uint32  Val = 0 
)
inline

◆ GetAllCounters()

virtual const TMap< FString, FJsonVariant > & IPerfCounters::GetAllCounters ( )
pure virtual
Returns
all perf counters as they are stored, with minimum conversion

Implemented in FPerfCounters.

◆ GetAllCountersAsJson()

virtual FString IPerfCounters::GetAllCountersAsJson ( )
pure virtual
Returns
all perf counters as JSON

Implemented in FPerfCounters.

◆ GetInstanceName()

virtual const FString & IPerfCounters::GetInstanceName ( ) const
pure virtual

Get the unique identifier for this perf counter instance

Implemented in FPerfCounters.

◆ GetNumber()

virtual double IPerfCounters::GetNumber ( const FString &  Name,
double  DefaultValue = 0.0 
)
pure virtual

Returns currently held value, or DefaultValue if none

Implemented in FPerfCounters.

◆ Increment()

int32 IPerfCounters::Increment ( const FString &  Name,
int32  Add = 1,
int32  DefaultValue = 0,
uint32  Flags = IPerfCounters::Flags::Transient 
)
inline

Convenience method for incrementing a transient counter.

Parameters
Namethe name of the counter
Addvalue of the increment (will be added to the counter, can be negative)
DefaultValueif the counter did not exist or was cleared, this is what it will be initialized to before performing the addition
Flagsflags for the counter
Returns
current value (i.e. after the increment)

◆ OnPerfCounterExecCommand()

virtual FPerfCounterExecCommandCallback & IPerfCounters::OnPerfCounterExecCommand ( )
pure virtual
Returns
delegate called when an exec command is to be executed

Implemented in FPerfCounters.

◆ PerformanceHistograms()

virtual TPerformanceHistogramMap & IPerfCounters::PerformanceHistograms ( )
pure virtual

Returns performance histograms for direct manipulation by the client code.

Implemented in FPerfCounters.

◆ ReportUnplayableCondition()

virtual bool IPerfCounters::ReportUnplayableCondition ( const FString &  ConditionDescription)
pure virtual

Reports an unplayable condition.

Implemented in FPerfCounters.

◆ ResetStatsForNextPeriod()

virtual void IPerfCounters::ResetStatsForNextPeriod ( )
pure virtual

Clears transient perf counters, essentially marking beginning of a new stats period

Implemented in FPerfCounters.

◆ Set() [1/8]

void IPerfCounters::Set ( const FString &  Name,
const FProduceJsonCounterValue Callback,
uint32  Flags = 0 
)
inline

◆ Set() [2/8]

void IPerfCounters::Set ( const FString &  Name,
const FString &  Val,
uint32  Flags = 0 
)
inline

◆ Set() [3/8]

void IPerfCounters::Set ( const FString &  Name,
double  Val,
uint32  Flags = 0 
)
inline

◆ Set() [4/8]

void IPerfCounters::Set ( const FString &  Name,
float  Val,
uint32  Flags = 0 
)
inline

◆ Set() [5/8]

void IPerfCounters::Set ( const FString &  Name,
int32  Val,
uint32  Flags = 0 
)
inline

Set overloads (use these)

◆ Set() [6/8]

void IPerfCounters::Set ( const FString &  Name,
int64  Val,
uint32  Flags = 0 
)
inline

◆ Set() [7/8]

void IPerfCounters::Set ( const FString &  Name,
uint32  Val,
uint32  Flags = 0 
)
inline

◆ Set() [8/8]

void IPerfCounters::Set ( const FString &  Name,
uint64  Val,
uint32  Flags = 0 
)
inline

◆ SetJson()

virtual void IPerfCounters::SetJson ( const FString &  Name,
const FProduceJsonCounterValue Callback,
uint32  Flags = 0 
)
pure virtual

Make a callback so we can request more extensive types on demand (presumably backed by some struct locally)

Implemented in FPerfCounters.

◆ SetNumber()

virtual void IPerfCounters::SetNumber ( const FString &  Name,
double  Value,
uint32  Flags = 0 
)
pure virtual

Maps value to a numeric holder

Implemented in FPerfCounters.

◆ SetString()

virtual void IPerfCounters::SetString ( const FString &  Name,
const FString &  Value,
uint32  Flags = 0 
)
pure virtual

Maps value to a string holder

Implemented in FPerfCounters.

◆ StartMachineLoadTracking() [1/2]

virtual bool IPerfCounters::StartMachineLoadTracking ( )
pure virtual

Starts tracking overall machine load.

Implemented in FPerfCounters.

◆ StartMachineLoadTracking() [2/2]

virtual bool IPerfCounters::StartMachineLoadTracking ( double  TickRate,
const TArray< double > &  FrameTimeHistogramBucketsMs 
)
pure virtual

Starts tracking overall machine load (empty array will use default hitch buckets).

Implemented in FPerfCounters.

◆ StopMachineLoadTracking()

virtual bool IPerfCounters::StopMachineLoadTracking ( )
pure virtual

Stops tracking overall machine load.

Implemented in FPerfCounters.


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