Diagnostic MapBook replay on the macOS development machine. Not a Day 5 benchmark and not the final Linux performance result.
- Trading day: July 30, 2019 (the project's fixed sample day, decisions D-008)
- Basename:
07302019.NASDAQ_ITCH50 - Decompressed size: 8,661,679,413 bytes (re-verified before the run)
- Decompressed SHA-256 (re-verified before the run):
9f8634a048b8195ccdcbe618e5833a759e35e04486d74e36b79176d35172654a - Replay limit: the first 50,000,000 complete framed messages (product_spec.md section 10, Day 3)
Every supported message in the first 50 million frames was decoded and applied to the per-locate MapBook engine in strict mode, which stops at the first semantic feed error. Progressive 1M and 10M runs preceded the 50M run to bound memory growth safely on the 8 GB development machine. Top-of-book output stayed disabled throughout, so no real feed values were written anywhere.
- Machine: Apple M2 (arm64), 8 cores, 8 GB RAM, Apple SSD, macOS 26.5.2
- Compiler: Apple clang 16.0.0 (clang-1600.0.26.6)
- Configuration: release preset (
-O3 -DNDEBUG -march=native, thin LTO) - All 158 tests pass in this configuration before the run
cmake --preset release
cmake --build --preset release
ctest --preset release --output-on-failure
/usr/bin/time -l ./build/release/nanobook book /path/to/07302019.NASDAQ_ITCH50 \
--engine=map --messages=50000000- Frames visited: 50,000,000 (exactly; replay ended at the frame limit)
- Supported decoded: 48,461,224; known unsupported skipped: 1,538,776; unknown: 0 (sums to the frame count exactly)
- Successful book mutations: 48,452,372 (equals supported minus the 3 S and 8,849 R messages exactly; every order operation applied)
- Semantic errors: 0 across all categories
- Books created: 8,840; directory entries: 8,849
- Final active orders: 1,768,131
- Final bid levels: 353,778; final ask levels: 402,028
- Final invariant check: ok across every created book
- Diagnostic elapsed: 19.706 seconds; about 2.54 million messages per second
- Peak resident set size: 1,147,387,904 bytes (about 1.07 GiB); 0 swaps
Supported counts by type:
| Type | Count |
|---|---|
| A | 21,339,646 |
| D | 19,763,344 |
| U | 4,492,847 |
| X | 1,001,954 |
| E | 943,157 |
| F | 890,883 |
| C | 20,541 |
| R | 8,849 |
| S | 3 |
Progressive safety runs (same command with smaller limits):
| Limit | Semantic errors | Invariants | Active orders | Peak RSS | Rate |
|---|---|---|---|---|---|
| 1M | 0 | ok | 11,134 | 33 MB | ~5.8M msgs/s |
| 10M | 0 | ok | 457,230 | 387 MB | ~4.9M msgs/s |
| 50M | 0 | ok | 1,768,131 | 1.07 GiB | ~2.54M msgs/s |
No semantic anomaly of any kind occurred, so there is no divergence or debugging event to document for this run. FastBook does not exist yet, so no engine comparison is made or implied.
tests/fixtures/day3_book_basic.itch(18 frames, 592 bytes), SHA-2561f04f59026de87e1610a7f72f8110976765d24ece6dea00a197f5a1a5ba05183tests/fixtures/day3_book_edge.itch(10 frames, 327 bytes), SHA-256be9c4365be297f93bdee4ff119480a66f42d311855d19d052582c3a8b30c7a9a
Both are generated by tools/itch_synth (book_basic, book_edge) from
purely synthetic values and contain no real Nasdaq bytes. This report
contains aggregates only; no raw message bytes, tickers, order references,
prices, quantities, or top-of-book values from the real feed appear here.