-
Notifications
You must be signed in to change notification settings - Fork 1
RayoMD 2.6.0 Performance Snapshot
Run date: 2026-07-18.
RayoMD 2.6 reduces optional Windows startup work for one-shot CLI exports. In an order-balanced same-session comparison against the frozen 2.5 release, the 2.6 Release build reduced fresh-process time 35.8% by paired geometric mean across three image-free workloads. Candidate PDFs were byte-identical to the matching 2.5 outputs.
This is a release-to-release startup result on one Windows host. It is not a universal Markdown-to-PDF ranking or a claim of visual or feature equivalence with broader renderers.
| Case | Input | RayoMD 2.5 median | RayoMD 2.6 median | Paired median improvement | Faster pairs |
|---|---|---|---|---|---|
| Tiny README | 205 B |
19.6959 ms |
11.8651 ms |
39.9% |
31/32 |
| Medium feature mix | 15,102 B |
21.0559 ms |
13.7823 ms |
36.7% |
32/32 |
| 500-row table | 33,353 B |
22.9131 ms |
15.3760 ms |
33.8% |
32/32 |
The aggregate same-session geometric means were 21.1809 ms for 2.5 and
13.5982 ms for 2.6. The paired-session improvement was 35.7999%.
The Windows executable now loads optional GUI, shell, networking, and image DLLs only when those paths are needed. One-shot native CLI exports can reach the exporter without eagerly loading those libraries first. CLI parsing compatibility, URL-image opt-in, and the normal GUI path remain available.
The candidate executable grew from 2,812,416 to 2,820,608 bytes (8 KiB,
about 0.3%). The startup improvement therefore carries a small, explicit
binary-size tradeoff rather than a new runtime dependency.
- Host: Windows 11 build 26200, AMD Ryzen 5 5600X, 128 GiB RAM.
- Build: MinGW-w64 GCC 15.2.0, CMake Release configuration.
- Timing: wall time from fresh process launch through output validation and process exit; filesystem and OS caches may be warm.
- Sampling: 32 order-balanced A/B pairs per case after six uncounted preflights per binary and case.
- Inputs: pinned local files with no Markdown or HTML image syntax; URL-image fetching disabled.
- Baseline:
rayomd 2.5.0,2,812,416bytes, SHA-25632b001eee4ff70ed5b8767b3652b88cc4c40473c84b085d277461e2a56cade01. - Candidate:
rayomd 2.6.0,2,820,608bytes, SHA-256289ec3f1baa1d85681add8b48174a5ec3d378fa5dc17c0aa4b66f98659877cb4.
Pinned input hashes:
| Case | SHA-256 |
|---|---|
| Tiny README | 7a2b7143c3a0b584d21c6aa8daa3ab59763482b51978bff677c3b5cccb71f919 |
| Medium feature mix | 5f31800448816969a0be9c45f153b4d642b0336fbbdbe98ec0d52a40d9083f4f |
| 500-row table | 33240f4ae881a717a6accf5b37f2603b13f2da4c5598ee7269faee7896af1619 |
The run met the harness's 20% paired improvement target, stayed within its
per-case regression limit, and produced byte-identical PDFs. Its frozen 2.5
baseline geometric mean was 14.2% slower than the earlier reference session,
exceeding the strict 5% drift limit. The automated acceptance result was
therefore false.
That drift does not reverse the order-balanced same-session result, but it does mean the absolute millisecond values should be treated as host-local. The README uses the paired improvement and carries this caveat here; it does not turn the run into a new cross-tool claim.
Build 2.6 in Release mode and run the maintained harness with an extracted 2.5 release binary and the pinned corpus:
cmake -S . -B build\windows -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build\windows --config Release
python scripts\fresh_process_ab.py `
--baseline benchmark-output\baselines\rayomd-2.5.0.exe `
--candidate build\windows\rayomd.exe `
--corpus benchmark-output\competitors\corpus `
--root benchmark-output\fresh-process-2.6 `
--runs 32 `
--preflights 6 `
--expected-baseline-sha256 32b001eee4ff70ed5b8767b3652b88cc4c40473c84b085d277461e2a56cade01Generated JSON records, corpora, PDFs, and binaries belong under ignored
benchmark-output/. See Performance Watcher for the broader warm, cold,
batch, serve, memory, reversible-PDF, and competitor workflows, and
Benchmarks for the dated archive.