diff --git a/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceDataManager.cs b/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceDataManager.cs index 830267b8f5..2c9442e895 100644 --- a/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceDataManager.cs +++ b/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceDataManager.cs @@ -5,26 +5,24 @@ namespace MLAPI.Profiling { internal static class PerformanceDataManager { - private static PerformanceTickData s_ProfilerData; + private static PerformanceTickData s_ProfilerData = new PerformanceTickData(); private static int s_TickId; internal static void BeginNewTick() { s_TickId = Math.Max(s_TickId, 0); - s_ProfilerData = new PerformanceTickData - { - TickId = s_TickId++, - }; + s_ProfilerData.Reset(); + s_ProfilerData.TickId = s_TickId++; } internal static void Increment(string fieldName, int count = 1) { - s_ProfilerData?.Increment(fieldName, count); + s_ProfilerData.Increment(fieldName, count); } internal static void AddTransportData(IReadOnlyDictionary transportProfilerData) { - s_ProfilerData?.AddNonDuplicateData(transportProfilerData); + s_ProfilerData.AddNonDuplicateData(transportProfilerData); } internal static PerformanceTickData GetData() @@ -32,4 +30,4 @@ internal static PerformanceTickData GetData() return s_ProfilerData; } } -} \ No newline at end of file +} diff --git a/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceTickData.cs b/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceTickData.cs index ef8dbcee2a..f5518a5120 100644 --- a/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceTickData.cs +++ b/com.unity.multiplayer.mlapi/Runtime/Profiling/PerformanceTickData.cs @@ -16,9 +16,12 @@ public void Increment(string fieldName, int count = 1) public void AddNonDuplicateData(IReadOnlyDictionary transportProfilerData) { - var nonDuplicates = transportProfilerData.Where(entry => !m_TickData.HasData(entry.Key)); - foreach (var entry in nonDuplicates) + foreach (var entry in transportProfilerData) { + if (m_TickData.HasData(entry.Key)) + { + continue; + } m_TickData.Add(entry.Key, entry.Value); } } @@ -32,5 +35,10 @@ public bool HasData(string fieldName) { return m_TickData.HasData(fieldName); } + + public void Reset() + { + m_TickData.Clear(); + } } }