Decode Throughput (ops/s)
Order book snapshot decoding - higher is better.
Performance Benchmarks
Real numbers. No marketing fluff. See how MYRA compares to industry standards.
Codec throughput, transport latency, and zero-GC verification.
Hardware and JVM configuration behind the published numbers.
benchmarks/ folder.
MyraCodec vs SBE, FlatBuffers, Kryo, and Avro.
Order book snapshot decoding - higher is better.
Order book snapshot encoding - higher is better.
| Decode (ops/s) | vs Myra Decode | Codec | Encode (ops/s) | vs Myra Encode |
|---|---|---|---|---|
| 2,721,551 | baseline | MyraCodec | 1,569,329 | baseline |
| 2,204,557 | -19% | SBE | 2,618,446 | +67% |
| 1,451,581 | -47% | FlatBuffers | 757,092 | -52% |
| 1,016,779 | -63% | Kryo | 700,405 | -55% |
| 359,322 | -87% | Avro | 342,544 | -78% |
Key insight: MyraCodec leads decode by 23% over SBE. SBE currently leads encode by 67% - optimization in progress.
MyraTransport vs Netty and Java NIO.
Round-trip latency in microseconds - lower is better.
Larger message round-trip - lower is better.
| Implementation | Mean (us) | P50 (us) | P99 (us) | P99.99 (us) | vs Netty |
|---|---|---|---|---|---|
| Ping-Pong (4 bytes) | |||||
| NIO | 22.11 | 21.06 | 34.18 | 1,505.10 | 40% faster |
| MYRA_SQPOLL | 29.59 | 23.14 | 54.08 | 4,849.65 | 19% faster |
| MYRA | 33.20 | 30.02 | 48.45 | 2,629.63 | 9% faster |
| Netty | 36.54 | 35.26 | 58.62 | 98.51 | baseline |
| Real-World Payload | |||||
| MYRA_TOKEN (best) | 27.93 | 26.27 | n/a | n/a | 39% faster |
| MYRA_SQPOLL | 31.14 | 25.60 | n/a | n/a | 20% faster |
| MYRA | 34.99 | 32.26 | n/a | n/a | 10% faster |
| Netty | 38.93 | 37.82 | n/a | n/a | baseline |
Key insight: MYRA_TOKEN mode (with io_uring token-based buffer selection) achieves 39% lower latency than Netty for real-world payloads.
Allocation analysis on hot paths.
MYRA components are tested with JMH's gc profiler and async-profiler to verify zero heap
allocations on performance-critical paths.
0 B/op
Roray-FFM-Utils
Pool acquire/release cycle
0 B/op
MyraCodec
Encode/decode with flyweights
0 B/op
MyraTransport
Send/receive with registered buffers
~48 B/op
Netty (comparison)
Per-message allocations
# Verify with JMH gc profiler
./gradlew :benchmarks:jmh -Pjmh.prof=gc
# Sample output
Benchmark Mode Cnt Score Units
MyraCodecBenchmark.decode thrpt 10 2.7M ops/s
MyraCodecBenchmark.decode:gc.alloc.rate thrpt 10 ~0 B/op
How we ensure accurate, reproducible results.
Benchmarks include JIT warmup phases to measure optimized code paths.
All benchmark code is open source. Run the same tests on your hardware.
Powered by Java Microbenchmark Harness for statistical rigor.
All benchmarks are open source and easy to run locally.
View Benchmark Source# Clone the transport repository
git clone https://github.com/mvp-express/myra-transport.git
cd myra-transport
# Run the benchmark suite
./gradlew :benchmarks:jmh
# Results will be in benchmarks/build/results/jmh/