6个版本
0.2.0 | 2021年12月18日 |
---|---|
0.1.5 | 2021年3月18日 |
0.1.4 | 2017年7月1日 |
0.1.3 | 2017年6月20日 |
0.1.1 | 2017年5月26日 |
#1590 in 文件系统
每月 21 次下载
20KB
134 行
fastar
比 tar -cT <(find . -type f)
更快的等效程序,优化了存储在HDD上的多个小文件的打包。
与GNU tar相比的优化
- 基于物理磁盘布局的目录遍历。参见platter-walk crate
- 一次性读取多个文件以提高驱动器的命令队列的填充。参见reapfrog crate
- 文件读取后丢弃磁盘缓存以防止磁盘缓冲区冲突。
与GNU tar相比的局限性
- 参数必须是目录
- 只能存档常规文件,不能存档符号链接或空目录
- 不包含xattrs
- 稀疏文件被零填充
构建
- 间接依赖:libz,liblzo头文件
cargo构建 --发布
基准测试
# ffcnt . -s
files: 6680901
bytes: 245271028476
# echo 3 > /proc/sys/vm/drop_caches ; tar -c . | pv -at > /dev/null
^C0:02:45 [ 2.4MiB/s]
# echo 3 > /proc/sys/vm/drop_caches ; tar -cT <(ffcnt --ls --type f --leaf-order content .) | pv -at > /dev/null
^C0:02:50 [4.11MiB/s]
# echo 3 > /proc/sys/vm/drop_caches ; fastar . | pv -at > /dev/null
^C0:02:51 [9.28MiB/s]
依赖
~7–15MB
~204K SLoC