7#ifndef UE_WITH_NETWORK_GRANULAR_MEM_TRACKING
8#define UE_WITH_NETWORK_GRANULAR_MEM_TRACKING !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
11#if UE_WITH_NETWORK_GRANULAR_MEM_TRACKING
28 return ScopeStack !=
nullptr;
43 const FString ScopeName;
48#define GRANULAR_NETWORK_MEMORY_TRACKING_INIT(Archive, ScopeName) UE::Net::Private::GranularMemoryTracking::FScopeMarker GranularNetworkMemoryScope(Archive, ScopeName);
49#define GRANULAR_NETWORK_MEMORY_TRACKING_TRACK(Id, Work) \
51 GranularNetworkMemoryScope.BeginWork(); \
53 GranularNetworkMemoryScope.EndWork(Id); \
55#define GRANULAR_NETWORK_MEMORY_TRACKING_CUSTOM_WORK(Id, Value) GranularNetworkMemoryScope.LogCustomWork(Id, Value);
59#define GRANULAR_NETWORK_MEMORY_TRACKING_INIT(Archive, ScopeName)
60#define GRANULAR_NETWORK_MEMORY_TRACKING_TRACK(Id, Work) { Work; }
61#define GRANULAR_NETWORK_MEMORY_TRACKING_CUSTOM_WORK(Id, Work)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Archive.h:1208
Definition NetworkGranularMemoryLogging.h:14
Definition NetworkGranularMemoryLogging.h:16
const FString & GetScopeName()
Definition NetworkGranularMemoryLogging.h:31
ENGINE_API void LogCustomWork(const FString &WorkName, const uint64 Bytes) const
ENGINE_API void EndWork(const FString &WorkName)
const bool IsEnabled() const
Definition NetworkGranularMemoryLogging.h:26
ENGINE_API FScopeMarker(FArchive &InAr, FString &&InScopeName)
friend struct FNetworkMemoryTrackingScopeStack
Definition NetworkGranularMemoryLogging.h:38
ENGINE_API void BeginWork()
ENGINE_API ~FScopeMarker()