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-02-23 13:08:52 -05:00
2026-02-23 13:08:52 -05:00
2026-03-13 09:51:11 -04:00
2026-02-25 11:31:17 -05:00
2026-03-13 09:53:37 -04:00
2026-03-12 14:09:23 -04:00
2026-03-13 15:30:02 -04:00
2026-02-23 13:08:52 -05:00
2026-02-22 19:53:49 -05:00
2026-03-12 14:09:23 -04:00
2026-03-13 15:30:02 -04:00