Performance

Extraction takes a few seconds; the Sphinx HTML build takes most of the time. These are single runs on 2026-10-12, not averages or guarantees.

The workload was Apache Commons Lang 3.21.0 from the Maven Central source JAR (SHA-256 e0467ff7412bbedf5f120e78de484cddc0afcf995b8ef3e7cd132ef4bd101d01): 264 Java files, 287 types and 4,337 members, with an 11 MB XML model. It ran on macOS 26.4.1 arm64 with Temurin 25.0.3, Python 3.12.13 and Sphinx 9.1.0.

Seconds per run

Run

Extraction or cache lookup

Sphinx HTML build

Empty caches

3.483

26.129

Unchanged sources

0.450

2.898

One package comment changed

3.659

28.892

A changed comment re-extracts the project and rebuilds every page that uses the model, even when file timestamps are preserved. Peak memory was 388 MiB for the Python process and 702 MiB for the largest child process.

Extraction recorded 106 diagnostics, and a full build emitted 3,022 warning lines. Unsupported Javadoc is therefore a larger adoption limit for this library than build time.

Reproduce

Unpack the source JAR, then run:

uv run --locked python tests/benchmark.py /path/to/commons-lang-sources/org

The benchmark copies the tree to a temporary directory, times the three runs and prints JSON. Pass --classpath for a project with dependencies. Windows reports no memory figures.