Performance Benchmarks

Measured, reproducible results — including the honest gaps.

How we benchmark

  • Interleaved runs — kp and the native tool alternate, so neither benefits from the other's earlier page-cache reads.
  • Page-cache flushing between runs; incompressible random data so compression/dedup can't inflate results.
  • 5-run averages on identical hardware for both tools.
  • CI gate: any scenario below 0.9× of the native tool fails the benchmark suite (BENCH_FLOOR=0.9).
  • Reproduce every number yourself: kp benchmark --compare.

Test Environment

Linux 6.12 (Debian) · Intel Core i5-3210M (2012-era laptop CPU) · 15 GB RAM
Deliberately modest hardware — if KopioRapido holds parity here, it holds it on anything.

CPU-fair (RAM-backed)

tmpfs — measures engine overhead honestly, with no disk I/O in the way.

Large File Copy (512 MB)

Sequential throughput, kernel copy_file_range

KopioRapido
KopioRapido
~1,630 MB/s
cp
cp
~1,600 MB/s

Parity (~1.02×).

Many Small Files (1,000 × 10 KB)

Metadata-heavy, parallel strategy

KopioRapido
KopioRapido
~140 MB/s
cp -r
cp -r
~180 MB/s

cp wins on RAM-speed storage; parity (1.0×) on a real disk.

Copy-on-Write (1 GB)

Same-volume reflink / APFS / ReFS

KopioRapido
KopioRapido
~2,000 MB/s
cp
cp
~1,600 MB/s

1.3× on CPU-fair storage — ~10× on a real disk.

Resume (256 MB, 50% present)

Interrupted-transfer resume

KopioRapido
KopioRapido
~1,300 MB/s
cp
cp
~1,850 MB/s

Similar speed — but cp restarts from zero; kp verifies the prefix and appends only the tail.

Move Directory (same-volume)

Atomic rename

KopioRapido
KopioRapido
~18,000 MB/s
mv
mv
~17,500 MB/s

Parity — metadata-only rename, mtime/perms preserved by construction.

Move Cross-Volume (200 × 256 KB)

Copy + delete

KopioRapido
KopioRapido
~400 MB/s
mv
mv
~450 MB/s

0.88× — per-file bookkeeping; negligible on multi-GB workloads.

Real disk (I/O-bound)

Representative of actual use; cache artifacts are called out.

Large File Copy (512 MB)

Sequential throughput on a real disk

KopioRapido
KopioRapido
~680 MB/s
cp
cp
~1,400 MB/s*

*cp’s number exceeds the disk’s real ~50–100 MB/s — a page-cache artifact, not disk I/O. On CPU-fair storage, large files are at parity (1.02×).

Many Small Files (1,000 × 10 KB)

Metadata-heavy on a real disk

KopioRapido
KopioRapido
~100 MB/s
cp -r
cp -r
~100 MB/s

Tie (1.0×) — bookkeeping is invisible under real disk I/O.

Copy-on-Write (1 GB)

Same-volume reflink / APFS / ReFS

KopioRapido
KopioRapido
~1,130 MB/s
cp
cp
~100 MB/s

~10× — the metadata-only clone skips the actual data write.

Resume (256 MB, 50% present)

Interrupted-transfer resume

KopioRapido
KopioRapido
~1,200 MB/s
cp
cp
~1,350 MB/s

Similar — and kp writes only the missing tail (half of cp’s writes), so it wins on I/O-bound hardware.

The honest gaps

Native tools stay competitive on raw local copies — we don't pretend otherwise. Where we measure behind, it's the per-file bookkeeping that pays for features they don't have (resume state, metadata index, comparison crawls):

  • Small files on RAM-speed storage: ~0.75× vs cp — ~20µs/file of bookkeeping; invisible under real disk I/O (1.0×).
  • Tiny deltas (sync/mirror): ~0.25–0.4× vs rsync when only KBs change — a fixed ~40–100ms per-operation cost dominates; the actual transfer is at parity. Negligible on real workloads.
  • Cross-volume move: ~0.88× vs mv — per-operation bookkeeping, proportional and negligible on multi-GB moves.
  • Large-file disk copy: the cp number can exceed disk speed (page-cache artifact); on CPU-fair tmpfs it's parity (1.02×).

Where KopioRapido wins

  • Same-volume cloning: metadata-only (reflink/APFS/ReFS) — ~10× measured on disk.
  • Verified resume: the only tool that resumes an interrupted transfer (native tools restart from zero).
  • Delta sync over the wire: sends only changed bytes — ~100× less data vs a full re-copy on big updates.
  • One-pass bidirectional: converges two trees in a single pass where rsync needs two.

Want to verify? kp benchmark --compare runs the full comparison on your own machine.