b2cFastCopy
A Windows bulk copier that uses RAM as a shock absorber between fast and slow drives.
- Role
- Design and engineering
- Areas
- Tools
Explorer and CopyFileEx aren't slow because the hardware is. They read through the system file cache, run at a queue depth of about one, use the same block size for every device, and don't notice when an SSD's fast cache fills. b2cFastCopy (b2fc) is our answer for copies of tens to hundreds of gigabytes, mixing huge files with trees of small ones.
How it works
- One RAM arena, allocated once and carved into page-aligned buffers, so nothing allocates on the hot path. Large pages are used when the privilege is held.
- Role-agnostic workers. Each worker asks the scheduler which side is starving and does blocking, unbuffered I/O there, so the number of workers on a side is that device's queue depth.
- An adaptive scheduler that samples every 100 ms and moves between balanced, fill, drain, cache-cliff and same-spindle burst states.
- Device profiling that picks block size and queue depth per drive class, falling back to timing random reads when a USB bridge won't report whether a disk spins.
- Optional BLAKE3 verification, a live dashboard, and JSON output.
What it shows
The README is frank about results: most copies are limited by the destination, and then b2fc, robocopy and Explorer all land on the same figure. Where the destination has headroom, it measured 1.13 times faster than robocopy /J /MT:32 for large files and 1.20 times faster for small ones. On a slow disk it reads the whole source into RAM early and releases the source drive a third of the way through the copy.
Our companion tool, DriveSpeedTest, measures the same cache cliffs from the benchmarking side.
