From 43648201ce4e4b7d6e6ff8df60a576c43fccbebd Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:07:57 +1100 Subject: [PATCH] Drop debug allocs a lot (#5638) IDK why the lifestage one in particular ballooned my dotmemory one up in particular but it did; I would've thought if it's boxing the other ones would've shown up. Doesn't matter for release just QOL to drop allocs by more than half. --- Robust.Server/GameStates/PvsData.cs | 6 +++++- Robust.Server/GameStates/PvsSystem.cs | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Robust.Server/GameStates/PvsData.cs b/Robust.Server/GameStates/PvsData.cs index c4df89b5c44..b051dc7b431 100644 --- a/Robust.Server/GameStates/PvsData.cs +++ b/Robust.Server/GameStates/PvsData.cs @@ -20,6 +20,10 @@ namespace Robust.Server.GameStates; /// internal sealed class PvsSession(ICommonSession session, ResizableMemoryRegion memoryRegion) { +#if DEBUG + public HashSet ToSendSet = new(); +#endif + public readonly ICommonSession Session = session; public readonly ResizableMemoryRegion DataMemory = memoryRegion; @@ -197,7 +201,7 @@ public void Validate(MetaDataComponent comp) { DebugTools.AssertEqual(NetEntity, comp.NetEntity); DebugTools.AssertEqual(VisMask, comp.VisibilityMask); - DebugTools.AssertEqual(LifeStage, comp.EntityLifeStage); + DebugTools.Assert(LifeStage == comp.EntityLifeStage); DebugTools.Assert(LastModifiedTick == comp.EntityLastModifiedTick || LastModifiedTick.Value == 0); } } diff --git a/Robust.Server/GameStates/PvsSystem.cs b/Robust.Server/GameStates/PvsSystem.cs index bb63968cd1b..3beff6530b2 100644 --- a/Robust.Server/GameStates/PvsSystem.cs +++ b/Robust.Server/GameStates/PvsSystem.cs @@ -302,7 +302,9 @@ private void GetEntityStates(PvsSession session) // Process all entities in visible PVS chunks AddPvsChunks(session); +#if DEBUG VerifySessionData(session); +#endif var toSend = session.ToSend!; session.ToSend = null; @@ -332,11 +334,12 @@ private void GetEntityStates(PvsSession session) session.Overflow = oldEntry.Value; } - [Conditional("DEBUG")] +#if DEBUG private void VerifySessionData(PvsSession pvsSession) { - var toSend = pvsSession.ToSend; - var toSendSet = new HashSet(toSend!.Count); + var toSend = pvsSession.ToSend!; + var toSendSet = pvsSession.ToSendSet; + toSendSet.Clear(); foreach (var intPtr in toSend) { @@ -360,6 +363,7 @@ private void VerifySessionData(PvsSession pvsSession) || data.LastSeen == _gameTiming.CurTick - 1); } } +#endif private (Vector2 worldPos, float range, EntityUid? map) CalcViewBounds(Entity eye) {