Skip to content

Commit 19b65f5

Browse files
committed
docs: sync README measured numbers and test counts with v1.1.1
1 parent f79504b commit 19b65f5

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,20 @@ Meridian is the venue half of a two-project quant systems narrative on the resum
1010

1111
The engine implements strict price-time priority (FIFO within each price level) and supports five order types: limit, market, immediate or cancel (IOC), post-only, and fill or kill (FOK), plus cancel by id. It is multi-instrument: one matching thread handles many symbols via a symbol-keyed dispatch. Top of book is published to readers (the sampler thread, the WebSocket server) through a seqlock-protected snapshot, so the matching loop never blocks on I/O. The single-threaded matching loop is the headline performance number.
1212

13-
## v1 numbers (measured)
13+
## Measured numbers (v1.1.1)
1414

1515
Captured from `meridian-bench --events 1000000 --seed 42 --warmup 100000` running the release binary single-threaded against a synthetic limit / market / cancel mix. The same harness runs in CI on every PR; the CI baseline is the regression floor.
1616

1717
| Metric | Desktop reference | CI baseline (GitHub Actions ubuntu-24.04) |
1818
|---|---|---|
19-
| Throughput | 4.34 M evt/s | 4.10 M evt/s |
20-
| Latency p50 | 158 ns | 160 ns |
21-
| Latency p90 | 377 ns | 361 ns |
22-
| Latency p99 | 720 ns | 721 ns |
23-
| Latency p99.9 | 1.42 us | 2.55 us |
19+
| Throughput | 4.80 M evt/s | 4.10 M evt/s |
20+
| Latency p50 | 151 ns | 160 ns |
21+
| Latency p99 | 615 ns | 721 ns |
22+
| Latency p99.9 | 1.31 us | 2.55 us |
2423

2524
CI fails the build if throughput drops more than 5 percent or any of the p50, p99, p99.9 latency percentiles rise more than 10 percent versus `bench/baseline.json`. The library and the bench binary contain zero networking code, so these numbers are defensible in isolation.
2625

27-
**Correctness**. All ten matching invariants are verified by hand rolled property-based tests in [`tests/property/`](tests/property/), each running 1000 generated cases per CI run. The C++ engine's audit log is diffed byte-for-byte against a Python reference implementation under [`tests/reference/`](tests/reference/) on every test run, covering 100 random sequences in the property suite plus 26 worked-example scenarios across Limit, Market, IOC, Post-only, FOK, and Cancel. Total test count: 182 C++ tests plus 18 frontend Vitest cases, all green at every commit on `main`.
26+
**Correctness**. All eleven matching invariants are verified by hand rolled property-based tests in [`tests/property/`](tests/property/), each running 1000 generated cases per CI run. The C++ engine's audit log is diffed byte-for-byte against a Python reference implementation under [`tests/reference/`](tests/reference/) on every test run, covering 100 random sequences in the property suite plus 71 named scenarios across Limit, Market, IOC, Post-only, FOK, and Cancel. Total test count: 221 C++ tests plus 21 frontend Vitest cases, all green at every commit on `main`.
2827

2928
**Replay**. NASDAQ ITCH 5.0 binary tapes (Add Order and Order Delete messages today; the remaining message types are deferred) are parsed and replayed against the engine via [`apps/replay/`](apps/replay/), with a byte-for-byte differential test against the Python reference in [`tests/integration/test_itch_replay.cpp`](tests/integration/test_itch_replay.cpp).
3029

0 commit comments

Comments
 (0)