docs: refresh benchmark comparison after JS async publish optimization
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
# Go vs .NET NATS Server — Benchmark Comparison
|
# Go vs .NET NATS Server — Benchmark Comparison
|
||||||
|
|
||||||
Benchmark run: 2026-03-13 12:08 PM America/Indiana/Indianapolis. Both servers ran on the same machine using the benchmark project README command (`dotnet test tests/NATS.Server.Benchmark.Tests --filter "Category=Benchmark" -v normal --logger "console;verbosity=detailed"`). Test parallelization remained disabled inside the benchmark assembly.
|
Benchmark run: 2026-03-13 America/Indiana/Indianapolis. Both servers ran on the same machine using the benchmark project README command (`dotnet test tests/NATS.Server.Benchmark.Tests -c Release --filter "Category=Benchmark" -v normal --logger "console;verbosity=detailed"`). Test parallelization remained disabled inside the benchmark assembly.
|
||||||
|
|
||||||
**Environment:** Apple M4, .NET SDK 10.0.101, benchmark README command run in the benchmark project's default `Debug` configuration, Go toolchain installed, Go reference server built from `golang/nats-server/`.
|
**Environment:** Apple M4, .NET SDK 10.0.101, Release build, Go toolchain installed, Go reference server built from `golang/nats-server/`.
|
||||||
|
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
@@ -58,9 +58,9 @@ Benchmark run: 2026-03-13 12:08 PM America/Indiana/Indianapolis. Both servers ra
|
|||||||
| Mode | Payload | Storage | Go msg/s | .NET msg/s | Ratio (.NET/Go) |
|
| Mode | Payload | Storage | Go msg/s | .NET msg/s | Ratio (.NET/Go) |
|
||||||
|------|---------|---------|----------|------------|-----------------|
|
|------|---------|---------|----------|------------|-----------------|
|
||||||
| Synchronous | 16 B | Memory | 14,812 | 12,134 | 0.82x |
|
| Synchronous | 16 B | Memory | 14,812 | 12,134 | 0.82x |
|
||||||
| Async (batch) | 128 B | File | 148,156 | 57,479 | 0.39x |
|
| Async (batch) | 128 B | File | 174,705 | 52,350 | 0.30x |
|
||||||
|
|
||||||
> **Note:** Async file-store publish remains well below parity at 0.39x, but it is still materially better than the older 0.30x snapshot that motivated this FileStore round.
|
> **Note:** Async file-store publish improved ~10% (47K→52K) after hot-path optimizations: cached state properties, single stream lookup, _messageIndexes removal, hand-rolled pub-ack formatter, exponential flush backoff, lazy StoredMessage materialization. Still storage-bound at 0.30x Go.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user