Add support for displaying all active Network Peer stats in Editor Profiler tab

This commit is contained in:
Wojtek Figat
2023-09-25 16:49:18 +02:00
parent a672f6aa6b
commit 216a5e9f92
4 changed files with 12 additions and 7 deletions

View File

@@ -65,13 +65,14 @@ namespace FlaxEditor.Windows.Profiler
/// <inheritdoc />
public override void Update(ref SharedUpdateData sharedData)
{
var peer = FlaxEngine.Networking.NetworkManager.Peer;
if (peer == null)
var peers = FlaxEngine.Networking.NetworkPeer.Peers;
var stats = new FlaxEngine.Networking.NetworkDriverStats();
foreach (var peer in peers)
{
_prevStats = new FlaxEngine.Networking.NetworkDriverStats();
return;
var peerStats = peer.NetworkDriver.GetStats();
stats.TotalDataSent += peerStats.TotalDataSent;
stats.TotalDataReceived += peerStats.TotalDataReceived;
}
var stats = peer.NetworkDriver.GetStats();
_dataSentChart.AddSample(Mathf.Max((long)stats.TotalDataSent - (long)_prevStats.TotalDataSent, 0));
_dataReceivedChart.AddSample(Mathf.Max((long)stats.TotalDataReceived - (long)_prevStats.TotalDataReceived, 0));
_prevStats = stats;

View File

@@ -8,9 +8,10 @@
#include "Engine/Platform/CPUInfo.h"
#include "Engine/Profiler/ProfilerCPU.h"
Array<NetworkPeer*> NetworkPeer::Peers;
namespace
{
Array<NetworkPeer*, HeapAllocation> Peers;
uint32 LastHostId = 0;
}

View File

@@ -15,6 +15,9 @@ API_CLASS(sealed, NoSpawn, Namespace = "FlaxEngine.Networking") class FLAXENGINE
{
DECLARE_SCRIPTING_TYPE_WITH_CONSTRUCTOR_IMPL(NetworkPeer, ScriptingObject);
// List with all active peers.
API_FIELD(ReadOnly) static Array<NetworkPeer*> Peers;
public:
int HostId = -1;
NetworkConfig Config;

View File

@@ -8,7 +8,7 @@
/// <summary>
/// The network transport driver statistics container. Contains information about INetworkDriver usage and performance.
/// </summary>
API_STRUCT(Namespace="FlaxEngine.Networking") struct FLAXENGINE_API NetworkDriverStats
API_STRUCT(Namespace="FlaxEngine.Networking", NoDefault) struct FLAXENGINE_API NetworkDriverStats
{
DECLARE_SCRIPTING_TYPE_MINIMAL(NetworkDriverStats);