3 个版本
使用旧的 Rust 2015
0.1.3 | 2021 年 3 月 18 日 |
---|---|
0.1.2 | 2017 年 6 月 20 日 |
0.1.0 | 2017 年 5 月 10 日 |
#1489 在 文件系统
23 每月下载次数
在 2 crates 中使用
17KB
342 代码行
platter-walk
一个基于物理磁盘布局优化的递归目录条目迭代器。考虑了块偏移量(通过 FIEMAP[1])、inode 表和磁盘缓存局部性。
对于具有对底层块设备读取访问权限的用户(root),它还对跨越多个目录的目录索引执行预读。这有点像是黑客行为,因为 readahead()
和 posix_fadvise()
不能直接在目录上工作,因为它们使用单独的缓存。[2][3]
最大的好处可以在使用 ext4 文件系统的 HDD 上实现。
可以优化遍历:
- 简单的目录条目列表(仅名称和
d_type
) - 详细条目列表(
stat
) - 读取文件内容。条目批次按物理偏移量排序。
依赖项
~3MB
~61K SLoC