ProfilingDebugging

Choose your operating system:

Windows

macOS

Linux

Classes

Name

Description

Public class

FABTest

Public class

FActiveExternalProfilerBase

Public class

FAutoScopedDurationTimer

Same as FScopedDurationTimer, except that it tracks the time value internally so you don't have to pass in a double to accumulate.

Public struct

FBootProfiling

Public class

FDurationTimer

Utility stopwatch class for tracking the duration of some action (tracks time in seconds and adds it to the specified variable on destruction).

Public class

FExternalProfiler

FExternalProfiler

Public class

FExternalProfilerExcluder

FExternalProfilerExcluder

Public class

FExternalProfilerIncluder

FExternalProfilerIncluder

Public class

FExternalProfilerTrace

Public struct

FFormatArgsTrace

Public struct

FHistogram

Fairly generic histogram for values that have natural lower bound and possibly no upper bound, e.g., frame time

Public struct

FHistogramBuilder

Used to construct a histogram that runs over a custom set of ranges, while still enforcing contiguity on the bin ranges

Public class

FInstanceCountingObject

Copyright Epic Games, Inc. All Rights Reserved.

Public class

FLoadTimeTracker

High level load time tracker utility (such as initial engine startup or game specific timings)

Public struct

FPlatformFileTrace

Public struct

FResourceSizeEx

Struct used to count up the amount of memory used by a resource.

Public class

FScopedABTimer

Public class

FScopedDebugInfo

Debug info that is stored on the stack and handled by stack unwinding.

Public class

FScopedDurationTimeCustomLogger

Utility class for logging the duration of a scoped action (the user doesn't have to call Start() and Stop() manually) using a custom output function.

Public class

FScopedDurationTimeLogger

Utility class for logging the duration of a scoped action (the user doesn't have to call Start() and Stop() manually).

Public class

FScopedDurationTimer

Utility class for tracking the duration of a scoped action (the user doesn't have to call Start() and Stop() manually).

Public class

FScopedExternalProfilerBase

Base class for FScoped*Timer and FScoped*Excluder

Public struct

FScopedLoadTimeAccumulatorTimer

Scoped helper class for tracking accumulated object times

Public class

FScopedSwitchedCountedDurationTimer

Utility stopwatch class for tracking the duration of some action (tracks time in seconds and adds it to the specified variable on destruction).

Public class

FScopedSwitchedDurationTimer

Utility stopwatch class for tracking the duration of some action (tracks time in seconds and adds it to the specified variable on destruction).

Public class

FTraceAuxiliary

Public class

FTraceMalloc

Public struct

FTraceUtils

Public struct

TDecay

Returns the decayed type of T, meaning it removes all references, qualifiers and applies array-to-pointer and function-to-pointer conversions.

Public class

TScopedDurationThreadSafeTimer

Utility class for tracking the duration of a scoped action to an accumulator in a thread-safe fashion.

Typedefs

Enums

Name

Description

Public enum

EMemoryTraceHeapAllocationFlags

These values are traced. Do not modify existing values in order to maintain compatibility.

Public enum

EMemoryTraceHeapFlags

These values are traced. Do not modify existing values in order to maintain compatibility.

Public enum

EMemoryTraceRootHeap

Public enum

EResourceSizeMode::Type

Indicate what types of resources should be included for calculating used memory

Public enum

EStreamingStatus

Here are a number of profiling helper functions so we do not have to duplicate a lot of the glue code everywhere.

Public enum

ETraceCounterDisplayHint

Public enum

ETraceCounterType

Public enum

ETraceFrameType

Functions

Name Description

Public function

void

 

CallstackTrace_Create

(
    FMalloc* Malloc
)

Public function

uint32

 

CallstackTrace_GetCurrentId()

Public function

void

 

CallstackTrace_Initialize()

Public function

FString

 

CreateProfileDirectoryAndFilename

(
    const FString& InSubDirectoryName,
    const FString& InFileExtension
)

This will create the directories and the file name all in one function

Public function

FString

 

CreateProfileFilename

(
    const FString& InFilename,
    const FString& InFileExtension,
    bool bIncludeDateForDirectoryName
)

This will generate the profiling file name that will work with limited filename sizes on consoles.

Public function

FString

 

CreateProfileFilename

(
    const FString& InFileExtension,
    bool bIncludeDateForDirectoryName
)

This will generate the profiling file name that will work with limited filename sizes on consoles.

Public function

FString

 

GetBuildNameForPerfTesting()

This will return the name specified with -BuildName=SomeName (needs to be a valid c++ name a-z A-Z _ 0-9 so we don't run into issues when we pass it around) or if not specified "CL%d" where d is coming from GetChangeListNumberForPerfTesting()

Public function

int32

 

GetChangeListNumberForPerfTesting()

This will get the version that should be used with the Automated Performance Testing If one is passed in we use that otherwise we use FApp::GetEngineVersion.

Public function

void

 

MemoryTrace_Alloc

(
    uint64 Address,
    uint64 Size,
    uint32 Alignment,
    HeapId RootHeap
)

Public function

int32

 

MemoryTrace_AnnounceCustomTag

(
    int32 Tag,
    int32 ParentTag,
    const TCHAR* Display
)

Public function

int32

 

MemoryTrace_AnnounceFNameTag

(
    const FName& TagName
)

Public function

void

 

MemoryTrace_Free

(
    uint64 Address,
    HeapId RootHeap
)

Public function

int32

 

MemoryTrace_GetActiveTag()

Public function

HeapId

 

MemoryTrace_HeapSpec

(
    HeapId ParentId,
    const TCHAR* Name,
    EMemoryTraceHeapFlags Flags
)

Public function

void

 

MemoryTrace_MarkAllocAsHeap

(
    uint64 Address,
    HeapId Heap
)

Public function

void

 

MemoryTrace_ReallocAlloc

(
    uint64 Address,
    uint64 NewSize,
    uint32 Alignment,
    HeapId RootHeap
)

Public function

void

 

MemoryTrace_ReallocFree

(
    uint64 Address,
    HeapId RootHeap
)

Public function

HeapId

 

MemoryTrace_RootHeapSpec

(
    const TCHAR* Name,
    EMemoryTraceHeapFlags Flags
)

Public function

void

 

MemoryTrace_UnmarkAllocAsHeap

(
    uint64 Address,
    HeapId Heap
)

Public function

constexpr bo...

 

operator!

(
    EMemoryTraceHeapFlags E
)

Public function

constexpr bo...

 

operator!

Public function

constexpr EM...

 

operator&

(
    EMemoryTraceHeapFlags Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

constexpr EM...

 

operator&

Public function

EMemoryTrace...

 

operator&=

(
    EMemoryTraceHeapFlags& Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

EMemoryTrace...

 

operator&=

Public function

constexpr EM...

 

operator^

(
    EMemoryTraceHeapFlags Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

constexpr EM...

 

operator^

Public function

EMemoryTrace...

 

operator^=

(
    EMemoryTraceHeapFlags& Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

EMemoryTrace...

 

operator^=

Public function

constexpr EM...

 

operator|

Public function

constexpr EM...

 

operator|

(
    EMemoryTraceHeapFlags Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

EMemoryTrace...

 

operator|=

Public function

EMemoryTrace...

 

operator|=

(
    EMemoryTraceHeapFlags& Lhs,
    EMemoryTraceHeapFlags Rhs
)

Public function

constexpr EM...

 

operator~

Public function

constexpr EM...

 

operator~

(
    EMemoryTraceHeapFlags E
)

Public function

void

 

SendDataToPCViaUnrealConsole

(
    const FString& NotifyType,
    const FString& FullFileName
)

This makes it so UnrealConsole will open up the memory profiler for us

Variables

Name Description

Public variable

double

 

GEngineInitEndTime

Public variable

double

 

GEnginePreInitPostStartupScreenEndTime

Public variable

double

 

GEnginePreInitPreStartupScreenEndTime