FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [View Raw Code]   [Original HTTPS Page]

rust-parser/BENCHMARK.md at master · SprocketBot/rust-parser · GitHub

Repository navigation

Latest commit

 

History

History
69 lines (50 loc) · 2.17 KB
  1. rust-parser

BENCHMARK.md

File metadata and controls

69 lines (50 loc) · 2.17 KB

Replay parser comparison

Measured on 2026-08-25 using the 32 .replay fixtures under ../rl-combined-parser/test-files/.

Accuracy

The old parser's Boxcars binding and the Rust CLI were compared on the fields the Rust CLI emits:

  • date, version, map, and game type
  • duration
  • team scores and derived winner
  • player names, platforms, online IDs, teams, and headline stats
  • goal frames, scorers, and teams

All 32 fixtures parsed successfully with both implementations. All scoped fields matched exactly: 32/32 fixtures.

Speed

Each implementation was warmed up once, then run over all 32 fixtures for five measured rounds.

Implementation Mean Median Stdev
Old parser binding 6.390 s 6.381 s 0.039 s
Rust CLI, one process per replay 0.242 s 0.242 s 0.007 s
Rust CLI, batch mode 0.129 s 0.128 s 0.002 s

The Rust CLI was approximately 14.1x faster than the old parser binding. Batch mode was approximately 1.88x faster than launching the Rust CLI once per replay.

The old-parser timing calls its compiled Rust binding from one persistent Python process. The per-file Rust timing includes process startup for every replay, making that comparison representative of command-line usage but not a strict parser-core benchmark.

Batch equivalence

rl-replay --batch replay1.replay replay2.replay ... emits a JSON array. The batch result was compared element-for-element with the 32 outputs produced by running the single-file command separately; all outputs matched.

Validation commands

cargo test
cargo build --release
git diff --check

The Rust unit test suite passes with five tests.

Binary size

Measured locally on Apple Silicon using the release build:

Artifact Size
Unstripped executable 1,622,832 bytes (1.55 MiB)
Stripped executable 1,387,648 bytes (1.32 MiB)
Compressed binary-only tarball 673,045 bytes (657 KiB)

The release workflow currently packages the executable together with the README and benchmark report, so published archives will be modestly larger. Other target platforms may differ slightly because of linker and binary format differences.


Back | FazBrowse Home | New Git URL