1P1C Throughput microbenchmark
This microbenchmark measures producer → TimeBase → consumer throughput using the smallest possible message type, InstrumentMessage
, which encodes to just 10 bytes.
The main goal is to show relative throughput of different kinds of streams.
Each run consists of:
- Warm-up: 10 seconds
- Measurement: 30 seconds, during which the number of messages successfully received by the consumer is counted
The benchmark implementation is available in:
deltix.qsrv.hf.tickdb.ui.tbshell.benchmark.Test_ThroughputBenchmark
Results
Stream Kind | Mode | Speed (msg/s) |
---|---|---|
Transient | Default | 4.14 M |
Durable | Default | 1.10 M |
Transient | High Throughput | 4.92 M |
Durable | High Throughput | 2.33 M |
Topic | IPC | 24.22 M |
Results were measured on developer workstation:
- CPU: i7-13850HX, 2100 Mhz, 20 Cores
- RAM: 32G
- SSD: Intel 660p NVMe
- OS: Windows 11 PRO
- OpenJDK 17.0.12
- TimeBase 5.6.161
Summary:
- Transient streams deliver about 2× higher throughput compared to durable streams.
- Enabling High Throughput mode improves performance further, most notably for transient streams, which approach 5 million msg/s.
- Durable streams also benefit, roughly doubling throughput in this mode.
- The Topic API shows an order of magnitude higher performance, exceeding 24 million msg/s, but follows a different data path and is not directly comparable to stream benchmarks.