From 9da467e00fc778c4afa6995d33276f6d519c821f Mon Sep 17 00:00:00 2001 From: Houmgaor Date: Sat, 21 Feb 2026 13:42:33 +0100 Subject: [PATCH] perf(channelserver): use package-level map for ignored opcodes The ignored() function is called on every packet when debug logging is enabled. It was rebuilding a slice and map from scratch each time. Move to a package-level map initialized once at startup. --- server/channelserver/sys_session.go | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/server/channelserver/sys_session.go b/server/channelserver/sys_session.go index 468ddd5f6..0232936d1 100644 --- a/server/channelserver/sys_session.go +++ b/server/channelserver/sys_session.go @@ -279,22 +279,18 @@ func (s *Session) handlePacketGroup(pktGroup []byte) { } } +var ignoredOpcodes = map[network.PacketID]struct{}{ + network.MSG_SYS_END: {}, + network.MSG_SYS_PING: {}, + network.MSG_SYS_NOP: {}, + network.MSG_SYS_TIME: {}, + network.MSG_SYS_EXTEND_THRESHOLD: {}, + network.MSG_SYS_POSITION_OBJECT: {}, +} + func ignored(opcode network.PacketID) bool { - ignoreList := []network.PacketID{ - network.MSG_SYS_END, - network.MSG_SYS_PING, - network.MSG_SYS_NOP, - network.MSG_SYS_TIME, - network.MSG_SYS_EXTEND_THRESHOLD, - network.MSG_SYS_POSITION_OBJECT, - // network.MSG_MHF_SAVEDATA, // Temporarily enabled for debugging save issues - } - set := make(map[network.PacketID]struct{}, len(ignoreList)) - for _, s := range ignoreList { - set[s] = struct{}{} - } - _, r := set[opcode] - return r + _, ok := ignoredOpcodes[opcode] + return ok } func (s *Session) logMessage(opcode uint16, data []byte, sender string, recipient string) {