Performance Benchmarks
This page presents performance benchmarks for Panache, measuring the time taken to parse and format Quarto documents of varying sizes and complexities. The benchmarks are designed to provide insights into the efficiency of Panache’s formatting pipeline.
Benchmark Suite
Benchmarks are run on real Quarto documents to measure realistic performance.
Methodology
- Measures three phases: full pipeline (parse+format), parse only, format only
- Reports average time per iteration and throughput (KB/s)
- Source of truth:
benches/benchmark_results.json(schema version 1)
Results
Small (synthetic)
Document: small.qmd (748 bytes, 48 lines)
Iterations: 1000
| Metric | Avg time |
|---|---|
| Full pipeline | 0.07 ms |
| Parse only | 0.03 ms |
| Format only | 0.03 ms |
| Throughput | 10273.39 KB/s |
Medium (Quarto tutorial)
Document: medium_quarto.qmd (8893 bytes, 146 lines)
Iterations: 100
| Metric | Avg time |
|---|---|
| Full pipeline | 0.47 ms |
| Parse only | 0.12 ms |
| Format only | 0.29 ms |
| Throughput | 18363.33 KB/s |
Tables (table-heavy)
Document: tables.qmd (18833 bytes, 636 lines)
Iterations: 50
| Metric | Avg time |
|---|---|
| Full pipeline | 1.18 ms |
| Parse only | 0.42 ms |
| Format only | 0.64 ms |
| Throughput | 15611.24 KB/s |
Math (computation-heavy)
Document: math.qmd (28562 bytes, 664 lines)
Iterations: 50
| Metric | Avg time |
|---|---|
| Full pipeline | 1.41 ms |
| Parse only | 0.36 ms |
| Format only | 0.81 ms |
| Throughput | 19758.15 KB/s |
Large (comprehensive)
Document: large_authoring.qmd (29858 bytes, 592 lines)
Iterations: 20
| Metric | Avg time |
|---|---|
| Full pipeline | 1.08 ms |
| Parse only | 0.41 ms |
| Format only | 0.58 ms |
| Throughput | 26908.64 KB/s |
Pandoc MANUAL (stress)
Document: pandoc_manual.md (299536 bytes, 8036 lines)
Iterations: 3
| Metric | Avg time |
|---|---|
| Full pipeline | 16.43 ms |
| Parse only | 5.55 ms |
| Format only | 10.31 ms |
| Throughput | 17799.78 KB/s |
Reproducing
# Download test documents
cd benches/documents && ./download.sh
# Generate JSON + docs page
./benches/generate_docs.sh