5#include "Containers/Array.h"
6#include "Containers/Map.h"
18#define WITH_LOADPACKAGE_TIME_TRACKER STATS
84#if WITH_LOADPACKAGE_TIME_TRACKER
85 Get().InternalPushLoadPackage(PackageName);
92#if WITH_LOADPACKAGE_TIME_TRACKER
93 Get().InternalPopLoadPackage(LoadedPackage,
nullptr);
100#if WITH_LOADPACKAGE_TIME_TRACKER
101 if (PostLoadObject && PostLoadObject->
IsAsset())
113#if WITH_LOADPACKAGE_TIME_TRACKER
114 Get().InternalPopLoadPackage(
nullptr, PostLoadObject);
121#if WITH_LOADPACKAGE_TIME_TRACKER
130#if WITH_LOADPACKAGE_TIME_TRACKER
131 Get().InternalPopLoadPackage(
nullptr,
nullptr);
138#if WITH_LOADPACKAGE_TIME_TRACKER
139 Get().InternalDumpReport(Args);
146#if WITH_LOADPACKAGE_TIME_TRACKER
147 Get().InternalResetReport();
154#if WITH_LOADPACKAGE_TIME_TRACKER
155 return Get().InternalGetExclusiveLoadTime(PackageName);
164#if WITH_LOADPACKAGE_TIME_TRACKER
165 return Get().InternalGetInclusiveLoadTime(PackageName);
172#if WITH_LOADPACKAGE_TIME_TRACKER
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void Construct(const FArguments &InArgs)
Definition IConsoleManager.h:2026
Definition ExclusiveLoadPackageTimeTracker.h:28
static double GetExclusiveLoadTime(FName PackageName)
Definition ExclusiveLoadPackageTimeTracker.h:152
static UE_FORCEINLINE_HINT void PushLoadPackage(FName PackageName)
Definition ExclusiveLoadPackageTimeTracker.h:82
static UE_FORCEINLINE_HINT void PopEndLoad()
Definition ExclusiveLoadPackageTimeTracker.h:128
static UE_FORCEINLINE_HINT void ResetReport()
Definition ExclusiveLoadPackageTimeTracker.h:144
static double GetInclusiveLoadTime(FName PackageName)
Definition ExclusiveLoadPackageTimeTracker.h:162
static bool PushPostLoad(UObject *PostLoadObject)
Definition ExclusiveLoadPackageTimeTracker.h:98
static void PushEndLoad()
Definition ExclusiveLoadPackageTimeTracker.h:119
static UE_FORCEINLINE_HINT void PopPostLoad(UObject *PostLoadObject)
Definition ExclusiveLoadPackageTimeTracker.h:111
static UE_FORCEINLINE_HINT void DumpReport(const TArray< FString > &Args)
Definition ExclusiveLoadPackageTimeTracker.h:136
static UE_FORCEINLINE_HINT void PopLoadPackage(UPackage *LoadedPackage)
Definition ExclusiveLoadPackageTimeTracker.h:90
Definition NameTypes.h:617
Definition UnrealString.h.inl:34
COREUOBJECT_API UPackage * GetOutermost() const
Definition UObjectBaseUtility.cpp:224
FORCEINLINE FName GetFName() const
Definition UObjectBase.h:233
virtual COREUOBJECT_API bool IsAsset() const
Definition Obj.cpp:2704
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
Definition ExclusiveLoadPackageTimeTracker.h:76
FScopedEndLoadTracker()
Definition ExclusiveLoadPackageTimeTracker.h:77
~FScopedEndLoadTracker()
Definition ExclusiveLoadPackageTimeTracker.h:78
Definition ExclusiveLoadPackageTimeTracker.h:32
~FScopedPackageTracker()
Definition ExclusiveLoadPackageTimeTracker.h:43
FScopedPackageTracker(UPackage *InPackageToTrack)
Definition ExclusiveLoadPackageTimeTracker.h:33
FScopedPackageTracker(FName PackageNameToTrack)
Definition ExclusiveLoadPackageTimeTracker.h:38
UPackage * PackageToTrack
Definition ExclusiveLoadPackageTimeTracker.h:47
Definition ExclusiveLoadPackageTimeTracker.h:52
UObject * PostLoadObject
Definition ExclusiveLoadPackageTimeTracker.h:71
FScopedPostLoadTracker(UObject *InPostLoadObject)
Definition ExclusiveLoadPackageTimeTracker.h:53
~FScopedPostLoadTracker()
Definition ExclusiveLoadPackageTimeTracker.h:64