Oxide v0.8.0 vs WizTree 4.32 & WinDirStat (v2.8 / v1.1.2) Benchmarks
Transparent, repeatable scan measurements captured on Windows 11. These engineering benchmarks reflect empirical telemetry recorded on Oxide release v0.8.0 across both full-drive elevated MFT scanning and unelevated fast-path directory traversal.
Test Environment & Methodology
All measurements were captured on a dedicated Windows 11 test machine equipped with an AMD Ryzen 7 5800H processor and an internal NVMe solid-state drive. The full-volume target was a production system drive (C:) containing 3,071,570 entries indexed across 5,429,248 raw MFT records. User-mode traversal tests were conducted across directory trees containing approximately 1,200,000 items.
Telemetry was recorded continuously at 50 ms intervals by an automated Python benchmark harness (benchmark_oxide_vs_wiztree.py). The harness tracks process working set (physical RAM), private commit charge, and wall-clock phase transitions from launch to fully settled user interaction.
1. Full Volume Elevated Scan (3.07 Million Entries)
When executed with administrator privileges on NTFS volumes, Oxide streams and parses raw MFT sectors directly from disk clusters in parallel with Rayon. Oxide achieves a fully interactive treemap in 6.34 seconds from process start (5.38 seconds for the backend engine), outperforming both WizTree 4.32 and modern WinDirStat 2.8.x while saving substantial RAM.
| Tool / Release | MFT Engine Parse | Launch to Settled Treemap | Settled RAM | Relative Speed |
|---|---|---|---|---|
| Oxide v0.8.0 (Full App) | 5.38 s | 6.34 s | 580.3 MB | Baseline (Fastest) |
| WinDirStat 2.8.x (Modern C++23) | ~9.5 s | 14.80 s | 920.5 MB | 2.3x slower |
| WizTree 4.32.0.0 | Not reported separately | 18.97 s | 1,620.4 MB | 3.0x slower |
| WinDirStat 1.1.2 (Legacy 2007) | No MFT support | 184.20 s | 239.6 MB | 29.1x slower |
Oxide backend internal phase timing for 3,071,570 nodes:
- Raw MFT record parse: 1.32 s
- Packed arena ingestion: 0.27 s
- Parent-child hierarchy link: 0.05 s
- Linear depth-first size aggregation: 0.17 s
- Largest files list compilation: 0.05 s
- Total backend engine duration: 5.38 s
2. User Mode & Folder Traversal Scan (~1.2 Million Entries)
When running without administrator privileges (standard user mode), or when analyzing single folders and non-NTFS volumes, disk tools cannot access raw volume sectors. In v0.8.0, Oxide features a Windows NT fast-path directory engine (NtQueryDirectoryFileEx with a 64 KiB thread-local buffer and Rayon parallel work-stealing), replacing legacy sequential single-threaded traversal.
| Tool / Engine | Scan Mode | Warm Scan | Cold Scan | Peak RAM | Architecture & Memory Model |
|---|---|---|---|---|---|
| Oxide v0.8.0 (NT Fast Path) | User mode (no admin) | ~3.3 s | ~10.6 s | ~50 MB (engine) | Zero-alloc StringArena (contiguous bytes) |
| WinDirStat 2.8.x (Modern) | User mode / parallel walk | 7.4 s | 18.5 s | 412.0 MB | C++23 node tree with wide string buffers |
| WizTree 4.32 (Folder mode) | User mode / folder walk | 6.5 s | 17.2 s | 635.2 MB | Delphi VCL object heap allocations |
| WinDirStat 1.1.2 (Legacy) | Standard Win32 walk | 45.8 s | 142.0 s | 239.6 MB | MFC single-threaded FindFirstFile traversal |
3. RAM Footprint Over Time (Working Set)
Physical working set memory was tracked across three distinct lifecycle phases: idle before scan, peak usage during active parsing, and settled memory once the treemap is interactive.
| Phase | WizTree 4.32 | WinDirStat 2.8.x | Oxide Backend (oxide.exe) | Oxide Total App (Rust + WebView2) |
|---|---|---|---|---|
| Pre-Scan Idle | 88.8 MB | 45.2 MB | 25.9 MB | 366.9 MB (WebView2 baseline) |
| Peak During Scan | 1,625.0 MB | 1,120.0 MB | 504.9 MB | 859.2 MB |
| Post-Scan Settled | 1,620.4 MB | 920.5 MB | 206.0 MB | 580.3 MB (saves >1 GB vs WizTree) |
4. Private Commit (Exclusive Memory Allocated)
Private commit reflects memory exclusively claimed by each process from the operating system page file:
| Phase | WizTree 4.32 | WinDirStat 2.8.x | Oxide Backend (oxide.exe) | Oxide Total App (Rust + WebView2) |
|---|---|---|---|---|
| Pre-Scan Idle Commit | 88.7 MB | 42.0 MB | 9.0 MB | 238.8 MB |
| Peak Commit | 1,628.6 MB | 1,145.0 MB | 658.5 MB | 884.8 MB |
| Settled Commit | 1,624.0 MB | 940.0 MB | 317.2 MB | 522.7 MB |
Architectural Analysis: Flat Arena vs Object Hierarchies
The contrast in memory efficiency stems directly from differences in memory layout:
- Rust Flat Arena (O(N) Compact Scaling): Oxide stores each file entry in a packed 32-byte struct (FileEntry) with 32-bit string intern offsets. All filenames reside in a single contiguous StringArena byte vector. At settled state, 3.07 million nodes occupy only 206.0 MB of memory in the backend engine, averaging ~67.1 bytes per node.
- Modern WinDirStat 2.x Evolution: WinDirStat 2.8 represents a major C++23 rewrite that introduced direct MFT scanning and multithreading, making it significantly faster than the legacy 1.1.2 release. However, because each node stores C++ object pointers, attributes, and wide string buffers, memory scales at ~300 bytes per node (settling near ~920 MB for 3M files). Oxide's compact 32-byte FileEntry and contiguous StringArena achieve ~67.1 bytes per node, keeping memory tight even on massive drives.
- Dual-Mode Scanning Flexibility: Unlike tools that only support elevated MFT access or only support user-mode traversal, Oxide provides both: high-throughput raw MFT cluster streaming when elevated, and parallel batch NT system call traversal when running unelevated.
- The Net Result: Despite the fixed WebView2 runtime cost, Oxide's high tree compaction means that on typical consumer and workstation drives (3 million or more files), the complete Oxide application saves over 1,040 MB of RAM compared to WizTree and over 340 MB compared to WinDirStat 2.8, while reaching an interactive state faster.
Guidelines for Repeatable Verification
When reproducing or verifying these benchmarks on your own system, maintain the following controls:
- Scan the exact same physical drive partition without modifying files between comparisons.
- Note whether the drive cache was warm from a prior scan or cold from a system reboot.
- For raw MFT benchmarks, ensure both tools run with administrator privileges to utilize direct NTFS MFT access. For unelevated comparisons, run in standard user mode.
- Capture both total scan duration and settled working set memory once user interface rendering is complete.
Questions regarding testing methodology or environment reproducibility: support@oxidedisk.com