/ Speed on 10,000 inputsjubarte.pro ↗Cases ↗Bench repo ↗

Speed on 10,000 varied inputs

Every tool gets the same planned inputs, one tool at a time on one machine (Apple M4 Pro, 12 cores, 24 GB, macOS). Times are per call. Nothing produced is kept: each redline or PDF is deleted once it is timed. The raw per-call rows are in the bench repository under results/speed_10k/.

Redline speed, 10,000 planned pairs

One call per pair, engines run one after another on the same machine. Node lanes time an in-memory compare(base, next); jubarte-rust spawns the CLI per pair (process start and file I/O included); SuperDoc's SDK is file based (open, compare, apply, save). No redline is kept. Base size quartile cuts: [10601, 19102, 56197] bytes. Machine state: ENV.txt. A call past the per-pair timeout (120 s) is a failure; its row keeps the timeout as its time.

Coverage

Same pairs for every tool

toolpairsnokfailedmedian msmean msp95 msp99 msmax msok total s
docxodus10000 common1000099336779.11731.77197.740675.7116815.317200.6
jubarte-rust10000 common1000010000045.083.0246.8671.73818.1830.1
jubarte-rust-inproc10000 common1000010000038.974.3234.6621.03818.8743.3
jubarte-wasm10000 common1000010000070.9140.6461.31202.85859.91406.1
superdoc10000 common10000798920275.7418.91623.16350.031746.8334.3

By pair category

toolcategorynokfailedmedian msmean msp95 msp99 msmax msok total s
docxodusall1000099336779.11731.77197.740675.7116815.317200.6
docxodusgrid5961592833116.12064.58934.345458.4116815.312238.5
docxodusidentity30030000.10.31.05.97.50.1
docxodusreverse10009901052.41317.84990.045081.481329.71304.6
docxodusword_compare273927152445.71347.14643.235400.5109684.83657.4
jubarte-rustall1000010000045.083.0246.8671.73818.1830.1
jubarte-rustgrid59615961055.7101.3313.5783.33028.3604.0
jubarte-rustidentity30030005.29.027.259.897.72.7
jubarte-rustreverse10001000034.557.6172.5466.62546.257.6
jubarte-rustword_compare27392739035.460.5169.4457.23818.1165.8
jubarte-rust-inprocall1000010000038.974.3234.6621.03818.8743.3
jubarte-rust-inprocgrid59615961048.590.3296.1695.72992.7538.3
jubarte-rust-inprocidentity30030002.46.122.754.4119.11.8
jubarte-rust-inprocreverse10001000028.550.9157.8419.12405.750.9
jubarte-rust-inprocword_compare27392739030.255.6164.1468.33818.8152.3
jubarte-wasmall1000010000070.9140.6461.31202.85859.91406.1
jubarte-wasmgrid59615961089.2172.7569.71494.85305.61029.5
jubarte-wasmidentity30030004.418.676.5294.7474.35.6
jubarte-wasmreverse10001000056.299.6308.1759.85146.399.6
jubarte-wasmword_compare27392739054.099.1295.9793.45859.9271.4
superdocall10000798920275.7418.91623.16350.031746.8334.3
superdocgrid596116594593.4336.23585.53585.53585.55.4
superdocidentity30026535343.21095.93403.112359.031746.8290.4
superdocreverse100014485665.676.4129.4208.3228.711.0
superdocword_compare2739373236659.073.7156.1219.3291.827.5

By base size quartile

toolquartilenokfailedmedian msmean msp95 msp99 msmax msok total s
docxodusQ124992499021.4216.5435.94267.338258.4541.1
docxodusQ224972495245.5471.01168.311683.277293.01175.0
docxodusQ32502248517117.92842.613489.265597.5116815.37063.9
docxodusQ42502245448230.73431.419517.964970.6115067.58420.6
jubarte-rustQ124992499011.236.8121.1342.33028.392.0
jubarte-rustQ224972497026.548.2136.9467.12176.4120.3
jubarte-rustQ325022502059.487.6208.2599.42407.2219.2
jubarte-rustQ4250225020113.4159.3450.11063.53818.1398.6
jubarte-rust-inprocQ12499249907.430.5109.0359.42016.576.2
jubarte-rust-inprocQ224972497021.741.6125.3419.11955.6104.0
jubarte-rust-inprocQ325022502052.478.9188.1552.52992.7197.4
jubarte-rust-inprocQ4250225020104.4146.2411.6965.33818.8365.7
jubarte-wasmQ124992499012.158.7211.5615.23810.8146.7
jubarte-wasmQ224972497038.980.1229.5883.23453.3200.0
jubarte-wasmQ325022502096.6154.3405.11182.54454.4386.0
jubarte-wasmQ4250225020185.1269.2762.01974.95859.9673.4
superdocQ12499585191463.386.3173.5282.73585.550.5
superdocQ22497852412236.1285.4685.01512.01512.024.3
superdocQ32502732429696.11212.95847.27270.17270.188.5
superdocQ425025524471623.13109.212359.031746.831746.8171.0

Redline speed run, notes

Run of 2026-09-29 (00:45 to 09:23 EDT)

Load

The machine was shared: two 1-ce-5 Python processes at 100% CPU for the whole run and bursts of another session's Rust builds (see ENV.txt). The lanes ran one after another, so each saw the same background.

DOCX to PDF

Not measured yet.