Input sizes and durations use rounded, readable units. Results are grouped by dataset and host; failed, timed-out, and not-measured rows stay visible. Open exact measurements. These records do not predict every workload or system.
The archived tables below describe a previous release; they are not Rust measurements. The Rust port comparison records the initial port build; the separate LCOV-profile comparison names its measured revision.
Rust port comparison
Apple M5 Max, macOS 27.0.1, 2026-10-14. Default make Rust PGO build with a portable CPU baseline versus the retained v1.1.0 previous-release PGO binary. Training uses seed 42; timed fixtures use seed 1. Nineteen interleaved measured runs after one warm-up, warm caches, a 64 MiB record budget, and named output files. Output bytes matched in every run.
Median elapsed time on separate synthetic fixtures
Workload
v1.1.0 PGO, 1 job
Rust PGO, 1 job
v1.1.0 PGO, 4 jobs
Rust PGO, 4 jobs
Sorted · 104.6 MB · 8 shards
210 ms
207 ms
210 ms
145 ms
Unsorted · 11.7 MB · 1 shard
71 ms
65 ms
71 ms
64 ms
The single-job sorted medians are close; those medians alone do not establish performance parity. Rust reduced the four-job sorted median by 31% and the unsorted median by 9%. Unsorted peak memory was about 38.8 MiB versus 18.8 MiB for the previous release. Unprofiled cargo release builds were slower in initial tests; use make for the optimized build. These results do not predict every workload. Read raw runs, hashes, methods, and validation limits.
LCOV 2.6 merge profile
On 2026-10-14, Rust commit 31be2d8 was measured against pinned LCOV 2.6 XS and pure Perl on an idle four-core Linux Azure runner. Six synthetic workloads cover lines, mixed records, testcases, a large single source, 64 shards, and gzip. Each used 19 paired runs at one and four jobs, with matching normalized output on every invocation.
Rust was faster than pure Perl in these measured cases. XS was faster for mixed records and gzip at both job counts, and for the large single source at four jobs. These results do not establish universal superiority or native-mode parity with the previous implementation.
Generated inputs: XXL, S, M, L, XL-single, PATH-HEAVY. Measured lcovmerge build: lcovmerge 1.1.0 (PGO). Comparators: lcov 2.6 and lcov-result-merger 6.0.0. The measured build is the v1.1.0 previous release. Generated measurements do not establish a universal speedup or output compatibility. The generated benchmark matrix REAL row remains unmeasured; separate public-project results are summarized on the validation page. For the published v1.1.0 previous release, Windows is verified in GitHub-hosted windows-latest CI: both the MSYS2 UCRT64 GCC build and shipped Zig binary pass the full suite and smoke tests, and separate generated-input benchmark runs are recorded; physical desktops, other Windows versions and real-user reports remain unverified, Windows CI runs no LCOV comparator, and large-dataset timings are disk-bound CI numbers.
Real public CI compatibility notes
On 2026-10-11, lcovmerge 1.0.2 reran three public CI sets (66 shards, 658 MB total). Strict LCOV 2.6 lcov -a failed 3/3; lcovmerge 1.0.2 completed 3/3, with 12 joined-boundary recovery warnings on one set. The original lcovmerge 1.0.1 run found the joined-boundary bug; the affected set's earlier 7 DA, 18 FN, and 18 FNDA differences are gone against diagnostic LCOV. Across all sets, normalized comparisons show 86 lcovmerge-only SF, 713 LCOV-only DA, 2 lcovmerge-only FN, 0 FNDA differences, and 9,877 BRDA key/value differences. The earlier investigation root-caused these classes to documented policies: LCOV's branch-only DA synthesis, empty SF handling, BRDA block-ID remapping, and duplicate legacy FN handling. The rerun compared normalized SF keys and keyed DA, FN, FNDA, and BRDA values/counts; it did not make strict LCOV succeed, did not compare byte-for-byte, did not cover summary, testcase, extension, or other unlisted record families, and did not newly isolate causes. This is compatibility evidence, not proof of equivalence or a performance result.
Each measurement below names its exact build and comparator. All timed fixtures in this group are generated.
Dataset M · elapsed time
Generated input: 1.12 GB · 32 shards. Bars use a zero-based scale; the table shows rounded durations and statuses. The published record retains exact measurements.
lcovmerge 1.1.0 (PGO)
lcov 2.6
lcov-result-merger 6.0.0
0 s1m 12.6s2m 25.2s
All recorded datasets and tools on the primary host. Displayed input sizes and durations are rounded; the linked JSON retains exact measurements. Peak resident memory, throughput, run count, and status are also shown.
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: 197 msStatus: OK
Run and memory record: 5 measured
Peak memory and throughput
Peak resident memory
2.48 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
508.6 MB/s
lcov 2.6
Elapsed: 5.32 sStatus: OK
Run and memory record: Time: 1 run(s)
Peak memory and throughput
Peak resident memory
229.8 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
18.8 MB/s
lcov-result-merger 6.0.0
Elapsed: 17.52 sStatus: OK
Run and memory record: Earlier recorded measurement; run count not reported
Peak memory and throughput
Peak resident memory
437.7 MiB
Memory record
Earlier recorded measurement; run count not reported
Throughput
5.7 MB/s
Dataset M · Generated sharded LCOV input.
Input: 1.12 GB · 32 shards · Generated
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: 2.94 sStatus: OK
Run and memory record: 5 measured
Peak memory and throughput
Peak resident memory
3.19 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
380.5 MB/s
lcov 2.6
Elapsed: 50.54 sStatus: OK
Run and memory record: Time: 1 run(s)
Peak memory and throughput
Peak resident memory
610.2 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
22.1 MB/s
lcov-result-merger 6.0.0
Elapsed: 2m 25.2sStatus: OK
Run and memory record: Earlier recorded measurement; run count not reported
Peak memory and throughput
Peak resident memory
2.33 GiB
Memory record
Earlier recorded measurement; run count not reported
Throughput
7.7 MB/s
Dataset L · Generated sharded LCOV input.
Input: 4.85 GB · 64 shards · Generated
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: 14.01 sStatus: OK
Run and memory record: 5 measured
Peak memory and throughput
Peak resident memory
4.20 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
346.5 MB/s
lcov 2.6
Elapsed: 3m 23.2sStatus: OK
Run and memory record: Time: 1 run(s)
Peak memory and throughput
Peak resident memory
1.40 GiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
23.9 MB/s
lcov-result-merger 6.0.0
Elapsed: 10m 4.3sStatus: OK
Run and memory record: Earlier recorded measurement; run count not reported
Peak memory and throughput
Peak resident memory
3.03 GiB
Memory record
Earlier recorded measurement; run count not reported
Throughput
8.0 MB/s
Dataset XL-single · Generated single .info file.
Input: 745 MB · 1 file · Generated
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: 1.18 sStatus: OK
Run and memory record: 5 measured
Peak memory and throughput
Peak resident memory
2.20 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
633.7 MB/s
lcov 2.6
Elapsed: 37.80 sStatus: OK
Run and memory record: Time: 1 run(s)
Peak memory and throughput
Peak resident memory
3.49 GiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
19.7 MB/s
lcov-result-merger 6.0.0
Elapsed: 170 msStatus: ERROR_1
Run and memory record: Earlier recorded measurement; run count not reported
Peak memory and throughput
Peak resident memory
607.7 MiB
Memory record
Earlier recorded measurement; run count not reported
Throughput
—
Dataset PATH-HEAVY · Generated input with two million distinct source paths.
Input: 130 MB · 1 file · Generated
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: 2.76 sStatus: OK
Run and memory record: 5 measured
Peak memory and throughput
Peak resident memory
17.78 MiB
Memory record
Hyperfine 2.0.0 memory_peak_resident; maximum over measured runs
Throughput
47.2 MB/s
lcov 2.6
Elapsed: 1m 38.8sStatus: ERROR_1
Run and memory record: Time: 1 run(s); peak resident memory unavailable for this failed run
Peak memory and throughput
Peak resident memory
peak resident memory unavailable for current failed run
Memory record
peak resident memory unavailable for current failed run
Throughput
—
lcov-result-merger 6.0.0
Elapsed: 30mStatus: TIMEOUT
Run and memory record: Earlier recorded measurement; run count not reported
Peak memory and throughput
Peak resident memory
842 MiB sampled in final 5m 8s; full-run peak resident memory unavailable
Memory record
842 MiB sampled in final 5m 8s; full-run peak resident memory unavailable
Throughput
—
Dataset REAL · No project-derived LCOV capture was available.
Input: Input not reported · not supplied · Project-derived input not supplied
Host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM
lcovmerge 1.1.0 (PGO)
Elapsed: NOT MEASUREDStatus: NOT MEASURED
Run and memory record: Not measured
Peak memory and throughput
Peak resident memory
—
Memory record
Not measured
Throughput
—
lcov 2.6
Elapsed: NOT MEASUREDStatus: NOT MEASURED
Run and memory record: Not measured
Peak memory and throughput
Peak resident memory
—
Memory record
Not measured
Throughput
—
lcov-result-merger 6.0.0
Elapsed: NOT MEASUREDStatus: NOT MEASURED
Run and memory record: Not measured
Peak memory and throughput
Peak resident memory
—
Memory record
Not measured
Throughput
—
Method and caveats
Primary host: macOS 27.0 arm64 · Apple M5 Max · 18 cores · 64 GiB RAM; measured 2026-10-12. lcovmerge run counts: S: 5, M: 5, L: 5, XL-single: 5, PATH-HEAVY: 5, REAL: 0, XXL: 3. Each row lists its measured tools, run counts, and memory source. Dataset M-trained PGO; portable release binaries. Cache conditions: no explicit cache flush; paired hyperfine warmups; machine load uncontrolled Open the published benchmark record.
Measurements cover one macOS 27 arm64 Apple M5 Max host; results are not a cross-platform claim.
S, M, L, XL-single, and PATH-HEAVY are generated fixtures. The generated benchmark matrix REAL row remains unmeasured; separate public-project captures and comparisons are recorded in docs/validation/real-projects.md.
All displayed lcovmerge measurements use a Dataset M-trained Apple Clang profile-guided host build. Release binaries remain portable target builds; this is not a cross-platform speed claim.
lcovmerge timing uses one hyperfine warmup and five measured runs for S, M, L, XL-single, and PATH-HEAVY; XXL uses one warmup and three measured runs. Cache warmups were used, but no explicit cache flush was applied.
lcov 2.6 ran once on the XXL input on 2026-10-12 and completed in 13m 47.6s; the 2026-10-11 run recorded 18m 0.6s on the same host with machine load uncontrolled. Its S, M, L, XL-single, and PATH-HEAVY values are earlier recorded measurements that were not rerun; the PATH-HEAVY run exited with status 1 after 1m 38.8s, so no valid speedup or current-run peak resident memory is reported for that failure.
lcov-result-merger 6.0.0 did not finish its XXL warmup before the 60-minute cutoff in the 2026-10-11 run and was not rerun for 1.1.0. It was stopped with SIGTERM after 1h 15.8s wall time; no measured run completed. Periodic peak resident memory samples peaked at 2.34 GiB, but the full-run peak is unavailable. Other lcov-result-merger rows are earlier measurements made with Node v24.14.0.
Dataset M's sorted regular inputs use one merge worker; --jobs results show run variation, not the effect of adding workers.
grcov 0.10.8 is identified as the current release but was not included in the measured benchmark runs.
The external Bazel issue is context only and was not measured with these commands.
The largest published result uses generated input. To contribute optional, sanitized results from private captures without uploading coverage data, follow the private-input measurement guide.
Separate measurements
Additional host results
Each group contains its recorded tools and builds. Results are not combined into a cross-host ranking.
windows-latest GitHub-hosted benchmark host (Zig -Oz and MSYS2 UCRT64 GCC -O2)6 rows · measured 2026-10-10 · separate measurement
Host: Windows-2025Server-10.0.26100-SP0 · 2025Server · INTEL(R) XEON(R) PLATINUM 8573C. This result set stays separate from the primary comparison.
Dataset results for this host; each row includes its own tool, run count, and status.
Host: Linux-6.17.0-1022-azure-x86_64-with-glibc2.39 · 6.17.0-1022-azure · INTEL(R) XEON(R) PLATINUM 8573C. This result set stays separate from the primary comparison.
Dataset results for this host; each row includes its own tool, run count, and status.