UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetStats.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/Platform.h"
7#include "Logging/LogMacros.h"
8#include "Containers/Array.h"
9
11
12namespace UE::Net::Private
13{
14 class FNetRefHandleManager;
15 class FNetStatsContext;
16}
17
18namespace UE::Net::Private
19{
20
27{
28public:
29 FNetSendStats() = default;
30 FNetSendStats(const FNetSendStats&) = delete;
32
35
38
41
44
47
50
53
56
59
62
65
67 IRISCORE_API void Accumulate(const FNetSendStats& Stats);
68
70 IRISCORE_API void Reset();
71
74
77
78private:
79 // Helper struct to facilitate reset of stats.
80 struct FStats
81 {
82 double HugeObjectWaitingForAckTimeInSeconds = 0;
83 double HugeObjectStallingTimeInSeconds = 0;
84
85 int32 ScheduledForReplicationRootObjectCount = 0;
86 int32 ReplicatedRootObjectCount = 0;
87 int32 ReplicatedObjectCount = 0;
88 int32 ReplicatedDestructionInfoCount = 0;
89 int32 DeltaCompressedObjectCount = 0;
90 int32 ReplicatedObjectStatesMaskedOut = 0;
91 int32 ActiveHugeObjectCount = 0;
92 int32 HugeObjectsWaitingForAckCount = 0;
93 int32 HugeObjectsStallingCount = 0;
94 int32 ReplicatingConnectionCount = 0;
95 };
96
98 FStats Stats;
99};
100
102{
103 Stats.ScheduledForReplicationRootObjectCount = Count;
104}
105
107{
108 Stats.ReplicatedRootObjectCount += Count;
109}
110
112{
113 Stats.ReplicatedObjectCount += Count;
114}
115
117{
118 Stats.DeltaCompressedObjectCount += Count;
119}
120
122{
123 Stats.ReplicatedObjectStatesMaskedOut += Count;
124}
125
127{
128 Stats.ReplicatedDestructionInfoCount += Count;
129}
130
132{
133 return Stats.ReplicatedRootObjectCount;
134}
135
137{
138 return Stats.ReplicatedObjectCount;
139}
140
142{
143 Stats.ActiveHugeObjectCount = static_cast<int32>(Count);
144}
145
147{
148 ++Stats.HugeObjectsWaitingForAckCount;
149 Stats.HugeObjectWaitingForAckTimeInSeconds += Seconds;
150}
151
153{
154 ++Stats.HugeObjectsStallingCount;
155 Stats.HugeObjectStallingTimeInSeconds += Seconds;
156}
157
159{
160 Stats.ReplicatingConnectionCount = Count;
161}
162
168{
169public:
170
175
176 // Preset stats type indices
177 static constexpr int32 DefaultTypeStatsIndex = 0U;
178 static constexpr int32 OOBChannelTypeStatsIndex = 1U;
179
180public:
182 FNetTypeStats(const FNetTypeStats&) = delete;
185
186 void Init(FInitParams& InitParams);
187
189 void PreUpdateSetup();
190
192 void ResetStats();
193
196
198 FNetStatsContext* GetNetStatsContext() { check(!bIsInParallelPhase); return IsEnabled() ? ParentStatsContext : nullptr; }
199
201 bool IsEnabled() const { return bIsEnabled; }
202
205
207 void ReportCSVStats();
208
211
214
217
220
222 void SetIsInParallelPhase(const bool InParallelPhase) { bIsInParallelPhase = InParallelPhase; }
223
224private:
225 FNetStatsContext* CreateNetStatsContext();
226
228 FNetStatsContext* CreateChildNetStatsContext();
229
230 void UpdateContext(FNetStatsContext& Context);
231
232 FNetStatsContext* ParentStatsContext = nullptr;
233
235 FCriticalSection ChildStatsContextCS;
236
238 TArray<FNetStatsContext*> ChildStatsContext;
239
240 FNetRefHandleManager* NetRefHandleManager = nullptr;
241 TArray<FName> TypeStatsNames;
242 bool bIsEnabled = false;
243 bool bIsInParallelPhase = false;
244};
245
270
271} // end namespace UE::Net::Private
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void Init()
Definition LockFreeList.h:4
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
UE::Stats::FStats FStats
Definition StatsSystem.h:56
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition Array.h:670
Definition NetRefHandleManager.h:72
Definition NetStats.h:27
void AddNumberOfReplicatedDestructionInfos(uint32 Count)
Definition NetStats.h:126
void SetNumberOfReplicatingConnections(uint32 Count)
Definition NetStats.h:158
void AddNumberOfReplicatedObjectStatesMaskedOut(uint32 Count)
Definition NetStats.h:121
void SetNumberOfRootObjectsScheduledForReplication(uint32 Count)
Definition NetStats.h:101
FNetSendStats & operator=(const FNetSendStats &)=delete
void AddNumberOfReplicatedRootObjects(uint32 Count)
Definition NetStats.h:106
void AddHugeObjectWaitingTime(double Seconds)
Definition NetStats.h:146
uint32 GetNumberOfReplicatedObjects() const
Definition NetStats.h:136
IRISCORE_API void Reset()
Definition NetStats.cpp:63
uint32 GetNumberOfReplicatedRootObjects() const
Definition NetStats.h:131
void AddHugeObjectStallTime(double Seconds)
Definition NetStats.h:152
IRISCORE_API void ReportCsvStats()
Definition NetStats.cpp:71
void SetNumberOfActiveHugeObjects(uint32 Count)
Definition NetStats.h:141
void AddNumberOfDeltaCompressedReplicatedObjects(uint32 Count)
Definition NetStats.h:116
void AddNumberOfReplicatedObjects(uint32 Count)
Definition NetStats.h:111
FNetSendStats(const FNetSendStats &)=delete
Definition NetStatsContext.h:62
Definition NetStats.h:168
FNetTypeStats()
Definition NetStats.cpp:112
FNetStatsContext * GetNetStatsContext()
Definition NetStats.h:198
static constexpr int32 OOBChannelTypeStatsIndex
Definition NetStats.h:178
void ResetStats()
Definition NetStats.cpp:146
void SetIsInParallelPhase(const bool InParallelPhase)
Definition NetStats.h:222
bool IsEnabled() const
Definition NetStats.h:201
void PreUpdateSetup()
Definition NetStats.cpp:133
void ReportCSVStats()
Definition NetStats.cpp:305
FNetTypeStats & operator=(const FNetTypeStats &)=delete
void AccumulateChildrenToParent()
Definition NetStats.cpp:259
~FNetTypeStats()
Definition NetStats.cpp:120
void CleanupChildNetStatsContexts()
Definition NetStats.cpp:250
FNetTypeStats(const FNetTypeStats &)=delete
FNetStatsContext * AcquireChildNetStatsContext()
Definition NetStats.cpp:210
static constexpr int32 DefaultTypeStatsIndex
Definition NetStats.h:177
void ReleaseChildNetStatsContext(FNetStatsContext *StatsContext)
Definition NetStats.cpp:240
int32 GetOrCreateTypeStats(FName Name)
Definition NetStats.cpp:158
Definition NetworkVersion.cpp:28
FNetRefHandleManager * NetRefHandleManager
Definition NetStats.h:173
Definition NetStats.h:247
uint32 MaxHugeObjectSendQueue
Definition NetStats.h:267
uint64 PendingObjectCount
Definition NetStats.h:262
uint64 PendingDependentObjectCount
Definition NetStats.h:263
uint64 HugeObjectSendQueue
Definition NetStats.h:264
void Accumulate(const FReplicationStats &Stats)
Definition NetStats.h:251
uint32 SampleCount
Definition NetStats.h:268
uint32 MaxPendingObjectCount
Definition NetStats.h:265
void ReportCSVStats()
Definition NetStats.cpp:364
uint32 MaxPendingDependentObjectCount
Definition NetStats.h:266
Definition StatsSystem.h:13