You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- C++ shows ~524 bytes extra per resident file in directory treesize
145
-
- Root cause unclear - may be MFT record space counting
146
-
- Needs further investigation
184
+
- Example: _FRAG_PRE_1 with 5000 files: C++ Size=2,731,149, Rust Size=109,445
185
+
186
+
### Why It Failed
187
+
- C++ includes MFT record overhead (~512 bytes) in treesize for resident files
188
+
- Resident files (allocated_size = 0) still consume MFT space
189
+
- Rust was not accounting for this overhead
190
+
191
+
### How Fixed
192
+
1. In `compute_tree_metrics()`, add 512 bytes of MFT overhead to `treesize` and `tree_allocated` for resident files (files where `allocated_size = 0` and `size > 0`)
193
+
2. This overhead propagates up the tree during aggregation
194
+
195
+
**Files Modified:**
196
+
-`crates/uffs-mft/src/index.rs` - MFT overhead for resident files
147
197
148
198
---
149
199
@@ -154,4 +204,12 @@ This matches the correct behavior already in `parse.rs` line 590:
154
204
| v0.2.124 | fix: C++ parity - Size on Disk, Directory Size, ADS Name |
155
205
| v0.2.125 | fix: C++ parity - Descendant count includes ADS |
156
206
| v0.2.126 | fix: Resident file Size on Disk = 0 (io.rs bug) |
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ Traditional file search tools (including `os.walk`, `FindFirstFile`, etc.) work
21
21
22
22
**UFFS reads the MFT directly** - once - and queries it in memory using Polars DataFrames. This is like reading the entire phonebook once instead of looking up each name individually.
23
23
24
-
### Benchmark Results (v0.2.126)
24
+
### Benchmark Results (v0.2.128)
25
25
26
26
| Drive Type | Records | Time | Throughput |
27
27
|------------|---------|------|------------|
@@ -33,7 +33,7 @@ Traditional file search tools (including `os.walk`, `FindFirstFile`, etc.) work
33
33
34
34
| Comparison | Records | Time | Notes |
35
35
|------------|---------|------|-------|
36
-
|**UFFS v0.2.126**|**18.7 Million**|**~142 seconds**| All disks, fast mode |
36
+
|**UFFS v0.2.128**|**18.7 Million**|**~142 seconds**| All disks, fast mode |
0 commit comments