Joseph Doherty
11e01b9026
perf: optimize MQTT cross-protocol path (0.30x → 0.78x Go)
...
Replace per-message async fire-and-forget with direct-buffer write loop
mirroring NatsClient pattern: SpinLock-guarded buffer append, double-
buffer swap, single WriteAsync per batch.
- MqttConnection: add _directBuf/_writeBuf + RunMqttWriteLoopAsync
- MqttConnection: add EnqueuePublishNoFlush (zero-alloc PUBLISH format)
- MqttPacketWriter: add WritePublishTo(Span<byte>) + MeasurePublish
- MqttTopicMapper: add NatsToMqttBytes with bounded ConcurrentDictionary
- MqttNatsClientAdapter: synchronous SendMessageNoFlush + SignalFlush
- Skip FlushAsync on plain TCP sockets (TCP auto-flushes)
2026-03-13 14:25:13 -04:00
Joseph Doherty
20f45b2aaf
Merge branch 'codex/filestore-payload-index-optimization'
2026-03-13 11:36:15 -04:00
Joseph Doherty
ca2d8019a1
docs: add FileStore benchmarks and storage notes
2026-03-13 11:34:19 -04:00
Joseph Doherty
900a4b0923
Merge branch 'codex/sublist-allocation-reduction'
2026-03-13 10:15:46 -04:00
Joseph Doherty
d1f22255d7
docs: record SubList allocation strategy
2026-03-13 10:08:50 -04:00
Joseph Doherty
a3b34fb16d
docs: record parser hot-path allocation strategy
2026-03-13 10:08:20 -04:00
Joseph Doherty
37575dc41c
feat: add benchmark test project for Go vs .NET server comparison
...
Side-by-side performance benchmarks using NATS.Client.Core against both
servers on ephemeral ports. Includes core pub/sub, request/reply latency,
and JetStream throughput tests with comparison output and
benchmarks_comparison.md results. Also fixes timestamp flakiness in
StoreInterfaceTests by using explicit timestamps.
2026-03-13 01:23:31 -04:00