v4.0.2 — Windows performance + honest progress
Windows-focused performance release, built from profiling a real 85 GB backup (NVMe → USB): total wall-clock 1h 4m → 44m 47s on the identical job — the remaining time is the destination drive's physical write speed.
Performance
- Disk-layout mapping ~1000× faster on Windows (12m 48s → 0.7s on a 6,600-file job): the per-file probe now opens attributes-only, so Windows Defender no longer content-scans every file, and probes run on a wider worker pool.
- Layout mapping is skipped entirely on SSD/NVMe sources — flash has no seek penalty, so physical ordering can't help. One seek-penalty query per source volume decides; rotational sources keep the full mapping, and a
Seek-penalty check:line explains the decision. - Small files (<1 MB) copy through a parallel writer pool (threads ×4, up to 128) instead of a single-threaded stream, overlapping per-file overhead (NTFS metadata, antivirus on-access scans). Small files also copy first, riding the destination's fresh write cache.
New Features
--small-files parallel|stream— choose the small-file engine; classic tar bundling stays available (GUI: Advanced → Small files).- Current-file display: the GUI shows the file being written right now, with its own progress for large files — a 50 GB archive no longer looks like a frozen counter (
--progress-jsongainscurrent/current_done/current_total). --threadsnow defaults from the CPU (logical processors, min 4, max 8); the GUI selector gains auto plus 16/32/64/128.
Improvements
- Speed and ETA you can trust: speed is a 30-second windowed rate (the old run-long average hid mid-run slowdowns), the ETA is smoothed and stage-aware, and it shows "—" instead of a bogus number until enough history exists.
- 6 new UI strings translated across all 6 languages, including the previously untranslated CLI help epilog.
Bug Fixes
- Files under 8 KB copied by the new parallel path could keep a wrong modification time (write-buffer flush ordering).
- Layout probes no longer fail on files being concurrently renamed or deleted (
FILE_SHARE_DELETE). - Long-path (
\\?\) prefixes made local volumes look like network shares to the SSD detection.
Full Changelog: v4.0.0...v4.0.2