Benchmark · Measured
Document conversion
Webfold converts an office document in a median 27.7 µs. Anydoc takes 155.5 µs. That is 5.6 times faster in process. Cold, the gap is only 1.1 times.
Office files or ebooks to Markdown. Webfold against anydoc, Pandoc or MarkItDown.
What question does this benchmark ask?
How fast does each tool convert the same office documents? Alone. Under load. As a command-line call.
How was it run?
- Single-document track: 45 public fixtures from the comparison converter (anydoc), both tools linked into one binary and given identical bytes. Hot is in process after warm-up; cold is a fresh process per fixture.
- Load track: a 17-fixture pool of small CSV, XLSX and DOCX files, 4,000 documents per worker, 1 to 64 workers, per-worker state, no shared cache.
- Command-line track: Webfold's CLI, Pandoc 3.1.11.1 and MarkItDown 0.1.8, one process per call, 16 workers.
What are the results?
| Measurement | Webfold | Comparison |
|---|---|---|
| Median per document, hot, 45 fixtures | 27.7 µs | anydoc 155.5 µs (5.6 times) |
| Fixtures where Webfold is faster, hot | 45 of 45 | per-fixture median 5.9 times, range 2.2 to 98 |
| Median per document, cold (fresh process) | 2.77 ms | anydoc 3.17 ms (1.1 times) |
| Throughput, 1 worker | 17,670 per second | anydoc 2,093 (8.4 times) |
| Throughput, 4 workers | 66,928 per second | anydoc 7,484 (8.9 times) |
| Throughput, 16 workers | 143,013 per second | anydoc 18,262 (7.8 times) |
| Throughput, 64 workers | 203,854 per second | anydoc 23,948 (8.5 times) |
| Peak memory, 64 workers | 21.0 MiB | anydoc 76.4 MiB (3.6 times) |
| CLI calls per second, 16 workers | 2,172.8 | Pandoc 329.0 (6.6 times); MarkItDown 2.80 (777 times) |
| The same document again, cache hit against converting again | 13.98 µs to 2.69 µs | 5.2 times at the median, up to 11.5 times |
Warm, Webfold converts a document about 5.6 times faster than anydoc and is faster on every one of the 45 fixtures. Under load it does about 8 to 9 times the throughput at every worker count tried, in about a quarter of the memory.
As a command-line call it does 6.6 times the calls per second of Pandoc and about 777 times those of MarkItDown, which starts a Python interpreter and its libraries for each document (2.28 seconds per document in this run).
Documents you read again are cheaper still: a cache hit is about 5.2 times faster than converting again.
What does this not show?
Know the limits
- Cold, a fresh process per document, the gap with anydoc is 1.1 times: process start-up dominates. The 5.6 times is the in-process figure.
- This is conversion success, not a fidelity score. Math, embedded objects, merged cells, display formats and ebook reading order are unscored, and Webfold wrote nothing for one PPTX fixture where anydoc wrote 24 bytes.
- Small public fixtures. The load track uses CSV, XLSX and DOCX only. The cache figure is a lookup, not a conversion, and the cached path is slower than plain conversion on the first read for 16 of 17 fixtures.
- Peak memory for the command-line tools includes the child process. MarkItDown's per-document time in the data (2.28 s) is lower than the 50 s quoted in earlier prose.
- Corrected on 2026-11-08: this page earlier showed 24,302 and 169,282 documents per second and 20 against 78 MiB. Those did not match the retained results and have been replaced with the retained figures above. Webfold's 1-worker rate is lower than the old figure and its 64-worker rate is higher.
- Pandoc 3.1.11.1 has no xlsx reader: the XLSX files in the command-line pool failed for it, and those failed calls are inside its calls per second (80 of its 288 calls at 16 workers).
- No PDF files are in this benchmark. The PDF extraction benchmark has its own page.
Which other benchmarks are there?
- HTML to Markdown conversion Measured
- Main-content extraction quality Measured
- Web archive extraction Measured
- Footprint of a scrape or crawl Directional
- PII detection against Presidio Measured
- Localisation extraction Directional
- PDF text extraction with OCR Directional
- PDF extraction against other extractors Directional
- LaTeX conversion with BibTeX Directional
- A whole site to Markdown Directional
- Agent-browser compatibility (Lexbench) Measured
- Headless engine over CDP Directional
- Search-results parsing Directional
- Folder search Directional
Check it on your own pages.
Run the command-line tool on your content.