diff --git a/Assets/Mirror/Core/NetworkServer.cs b/Assets/Mirror/Core/NetworkServer.cs index 1a755accb..62fe1dd75 100644 --- a/Assets/Mirror/Core/NetworkServer.cs +++ b/Assets/Mirror/Core/NetworkServer.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using Mirror.RemoteCalls; using UnityEngine; +using Debug = UnityEngine.Debug; namespace Mirror { @@ -1789,6 +1791,7 @@ static void FlushConnections() internal static readonly List connectionsCopy = new List(); + static Stopwatch watch = new Stopwatch(); static void Broadcast() { // copy all connections into a helper collection so that @@ -1801,6 +1804,7 @@ static void Broadcast() // socket send/recv later. connectionsCopy.Clear(); connections.Values.CopyTo(connectionsCopy); + watch.Restart(); // broadcast spawned entities BroadcastSpawned(); @@ -1808,6 +1812,8 @@ static void Broadcast() // flush all connection's batched messages FlushConnections(); + Debug.Log($"Broadcast took: {watch.Elapsed.TotalMilliseconds:F1} ms"); + // TODO this is way too slow because we iterate ALL spawned :/ // TODO this is way too complicated :/ // to understand what this tries to prevent, consider this example: