Joseph Doherty
a62a25dcdf
perf: optimize fan-out hot path and switch benchmarks to Release build
Round 9 optimizations targeting per-delivery overhead:
- Switch benchmark harness from Debug to Release build (biggest impact:
durable fetch 0.42x→0.92x, request-reply to parity)
- Batch server-wide stats after fan-out loop (2 Interlocked per delivery → 2 per publish)
- Guard auto-unsub tracking with MaxMessages > 0 (skip Interlocked in common case)
- Cache SID as ASCII bytes on Subscription (avoid per-delivery encoding)
- Pre-encode subject bytes once before fan-out loop (avoid N encodings)
- Add 1-element subject string cache in ProcessPub (avoid repeated alloc)
- Remove Interlocked from SubList.Match stats counters (approximate is fine)
- Extract WriteMessageToBuffer helper for both string and span overloads
2026-03-13 15:30:02 -04:00
..
2026-03-12 23:03:12 -04:00
2026-03-13 03:11:11 -04:00
2026-03-12 14:09:23 -04:00
2026-03-12 19:45:54 -04:00
2026-02-25 12:53:04 -05:00
2026-03-12 14:09:23 -04:00
2026-02-25 11:36:12 -05:00
2026-03-13 14:44:02 -04:00
2026-03-13 01:02:00 -04:00
2026-03-13 11:38:52 -04:00
2026-03-13 14:44:49 -04:00
2026-03-13 10:02:15 -04:00
2026-03-12 14:09:23 -04:00
2026-03-13 01:02:00 -04:00
2026-03-12 14:09:23 -04:00
2026-03-13 15:30:02 -04:00
2026-03-12 14:09:23 -04:00
2026-03-12 14:09:23 -04:00
2026-02-23 00:53:15 -05:00
2026-03-12 14:09:23 -04:00
2026-02-23 04:26:15 -05:00
2026-02-23 05:15:06 -05:00
2026-02-25 11:32:00 -05:00
2026-02-22 23:34:05 -05:00
2026-03-13 09:35:57 -04:00
2026-03-13 09:35:57 -04:00
2026-02-23 14:43:08 -05:00
2026-03-13 10:08:20 -04:00
2026-03-13 15:30:02 -04:00
2026-03-13 03:11:11 -04:00
2026-03-13 15:30:02 -04:00
2026-02-23 10:16:16 -05:00
2026-03-12 14:09:23 -04:00
2026-02-25 11:33:58 -05:00