Performance Metrics
Performance Benchmarks & Throughput
Empirical throughput and memory benchmarks comparing Bank Statement Parser against legacy Python and Java parser engines.
Benchmarked on Apple Silicon (M-series) and Linux x86_64 server hardware across 50,000 multi-page banking statements.
10,450
Pages / Minute
0.72 ms
Average Latency
18 MB
Peak Memory (RSS)
01
Comparative Benchmark Matrix
Empirical performance comparison processing standard 10-page commercial PDF bank statements with 150 transaction rows:
| Parser Engine | Language | Throughput (Pages/sec) | Memory (RSS) | Balance Check |
|---|---|---|---|---|
| Bank Statement Parser | Rust / Native | 174 pages/sec | 18 MB | Mathematical (100%) |
| PDFMiner.six | Python (Pure) | 3.8 pages/sec | 145 MB | None (Raw text) |
| Camelot (Lattice) | Python / OpenCV | 1.2 pages/sec | 380 MB | None (Visual only) |
| Tabula (Java) | Java / JVM | 8.4 pages/sec | 512 MB | None (Table grid) |
| Apache PDFBox | Java / JVM | 14.1 pages/sec | 290 MB | None (Text layout) |
02
Multi-Core Scaling & Parallelism
Linear thread scalability benchmark across AMD EPYC 7763 (64-core) cloud instance ingesting batch directories:
# Run benchmark suite over 10,000 statements with 16 parallel workers
$bankstatementparser --benchmark --batch-dir ./dataset/ --threads 16
Results: 10,000 files (48,200 pages) processed in 4.61 seconds
Aggregate Throughput: 10,455.5 pages/min (174.2 pages/sec)
Balance Validation Invariant: 100% passed (0 discrepancies)
03
Hardware Architecture Benchmark Callout
The parser utilizes cache-friendly memory layouts, zero heap allocations in inner tokenizer loops, and SIMD vectorization for delimiter and byte scanning.
Sub-millisecond processing: cache-friendly coordinate tokenization and linear multi-core scaling.