UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ScopedTimers.h File Reference
#include "CoreTypes.h"
#include "Containers/UnrealString.h"
#include "Containers/StringFwd.h"
#include "CoreGlobals.h"
#include "HAL/PlatformTime.h"
#include "HAL/ThreadSafeCounter.h"
#include "Misc/OutputDeviceRedirector.h"
#include "HAL/ThreadSafeCounter64.h"
#include <atomic>

Go to the source code of this file.

Classes

class  FDurationTimer
 
class  FScopedDurationTimer
 
class  FAutoScopedDurationTimer
 
class  FDurationAtomicTimer
 
class  FScopedDurationAtomicTimer
 
class  TScopedDurationThreadSafeTimer< ThreadSafeCounterClass >
 
class  FScopedDurationTimeLogger
 
class  FScopedSwitchedDurationTimer
 
class  FScopedSwitchedCountedDurationTimer
 
class  FScopedDurationTimeCustomLogger< Func >
 

Macros

#define UE_SCOPED_TIMER(Title, Category, Verbosity)    static double UE_SCOPED_TIMER_COMBINE(ScopedTimerTotal_,__LINE__) = 0.0; FScopedDurationTimeCustomLogger UE_SCOPED_TIMER_COMBINE(ScopedTimer_,__LINE__)(Title, UE_SCOPED_TIMER_COMBINE(ScopedTimerTotal_,__LINE__), [](const TCHAR* Msg) { UE_LOG(Category, Verbosity, TEXT("%s"), Msg) })
 
#define UE_SCOPED_TIMER_COMBINE_INNER(A, B)   A##B
 
#define UE_SCOPED_TIMER_COMBINE(A, B)   UE_SCOPED_TIMER_COMBINE_INNER(A,B)
 

Typedefs

typedef TScopedDurationThreadSafeTimer< FThreadSafeCounterFScopedDurationThreadSafeTimer
 
typedef TScopedDurationThreadSafeTimer< FThreadSafeCounter64FScopedDurationThreadSafeTimer64
 

Functions

double AtomicDoubleFetchAdd (std::atomic< double > &Value, double Delta, std::memory_order MemoryOrder=std::memory_order_seq_cst)
 

Macro Definition Documentation

◆ UE_SCOPED_TIMER

#define UE_SCOPED_TIMER (   Title,
  Category,
  Verbosity 
)     static double UE_SCOPED_TIMER_COMBINE(ScopedTimerTotal_,__LINE__) = 0.0; FScopedDurationTimeCustomLogger UE_SCOPED_TIMER_COMBINE(ScopedTimer_,__LINE__)(Title, UE_SCOPED_TIMER_COMBINE(ScopedTimerTotal_,__LINE__), [](const TCHAR* Msg) { UE_LOG(Category, Verbosity, TEXT("%s"), Msg) })

◆ UE_SCOPED_TIMER_COMBINE

#define UE_SCOPED_TIMER_COMBINE (   A,
  B 
)    UE_SCOPED_TIMER_COMBINE_INNER(A,B)

◆ UE_SCOPED_TIMER_COMBINE_INNER

#define UE_SCOPED_TIMER_COMBINE_INNER (   A,
  B 
)    A##B

Typedef Documentation

◆ FScopedDurationThreadSafeTimer

◆ FScopedDurationThreadSafeTimer64

Function Documentation

◆ AtomicDoubleFetchAdd()

double AtomicDoubleFetchAdd ( std::atomic< double > &  Value,
double  Delta,
std::memory_order  MemoryOrder = std::memory_order_seq_cst 
)
inline

Implements the same behavior as std::atomic<double>.fetch_add(double Delta), which is only available in c++20. This function will be deprecated and callsites will replace it with std::atomic<double>.fetch_add when versions earlier than c++20 are deprecated.

Atomically adds Delta to Value, using the given MemoryOrder for the ReadModifyWrite of the new value.

Returns
The value before the finally successful addition.