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-13 01:02:00 -04:00
2026-03-13 11:50:01 -04:00
2026-03-13 09:35:57 -04:00
2026-03-13 15:30:02 -04:00
2026-03-13 10:06:24 -04:00
2026-03-13 10:15:46 -04:00
2026-03-12 15:10:50 -04:00
2026-03-13 11:34:19 -04:00
2026-03-12 15:23:33 -04:00
2026-03-12 15:44:12 -04:00
2026-03-13 10:09:40 -04:00
2026-03-12 15:36:02 -04:00
2026-03-13 03:11:11 -04:00
2026-03-12 16:14:02 -04:00