5 个版本 (破坏性)
0.7.0 | 2021 年 11 月 14 日 |
---|---|
0.6.0 | 2019 年 9 月 21 日 |
0.5.0 | 2018 年 11 月 25 日 |
0.4.0 | 2018 年 11 月 5 日 |
0.3.0 | 2018 年 11 月 2 日 |
#2494 在 命令行工具
每月 80 次下载
18KB
249 行
diskus
是 'du -sh' 的最小化、快速替代品。
diskus
是一个计算当前目录总大小的非常简单的程序。它是 du -sh
的并行版本。在我的 8 核笔记本电脑上,它比具有冷磁盘缓存的 du
快 10 倍,具有热磁盘缓存时则快 3 倍以上。
> diskus
9.59 GB (9,587,408,896 bytes)
基准测试
以下基准测试是在一个适度大的文件夹(15GB,100k 个目录,400k 个文件)上使用 hyperfine 进行的。较小的文件夹实际上并不重要,因为所有程序都会在合理的时间内完成,而不会打断您的工作流程。
除了 du
和 diskus
之外,我们还比较了 tin-summer (sn
) 和 dust
。这两个也是用 Rust 编写的,并且比 diskus
提供了更多的功能(查看它们!)。通过 hyperfine -parameter-scan
确定了 sn
(-j
选项)的最佳线程数。
冷磁盘缓存
sudo -v
hyperfine --prepare 'sync; echo 3 | sudo tee /proc/sys/vm/drop_caches' \
'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
(sudo
/sync
/drop_caches
命令是在基准测试运行之间清除文件系统缓存的 方法)
命令 | 平均值 [s] | 最小值 [s] | 最大值 [s] | 相对值 |
---|---|---|---|---|
diskus |
1.746 ± 0.017 | 1.728 | 1.770 | 1.00 |
du-sh |
17.776 ± 0.549 | 17.139 | 18.413 | 10.18 |
sn p-d0-j8 |
18.094 ± 0.566 | 17.482 | 18.579 | 10.36 |
dust-d0 |
21.357 ± 0.328 | 20.974 | 21.759 | 12.23 |
热磁盘缓存
在热磁盘缓存上,差异较小
hyperfine --warmup 5 'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
命令 | 平均值 [ms] | 最小值 [ms] | 最大值 [ms] | 相对值 |
---|---|---|---|---|
diskus |
500.3 ± 17.3 | 472.9 | 530.6 | 1.00 |
du-sh |
1098.3 ± 10.0 | 1087.8 | 1122.4 | 2.20 |
sn p-d0-j8 |
1122.2 ± 18.2 | 1107.3 | 1170.1 | 2.24 |
dust-d0 |
3532.1 ± 26.4 | 3490.0 | 3563.1 | 7.06 |
安装
基于Debian的系统
您可以从发布页面下载最新的Debian软件包,并通过dpkg
安装。
wget "https://github.com/sharkdp/diskus/releases/download/v0.7.0/diskus_0.7.0_amd64.deb"
sudo dpkg -i diskus_0.7.0_amd64.deb
基于Arch的系统
pacman -S diskus
或者从AUR下载diskus-bin。
基于Void的系统
xbps-install diskus
在macOS上
您可以使用Homebrew安装diskus
。
brew install diskus
或者使用MacPorts。
sudo port install diskus
在Haiku上
pkgman install diskus
在NixOS上
nix-env -iA nixos.diskus
或者将其添加到您的configuration.nix
文件中的environment.systemPackages
。
在其他系统上
请查看发布页面以获取二进制构建版本。
通过cargo
如果您有Rust 1.50或更高版本,您可以通过cargo
从源代码安装diskus
。
cargo install diskus
Windows注意事项
Windows内部工具,如PowerShell、资源管理器或dir
,在确定目录大小时不尊重硬链接或链接点。diskus
也是如此,并多次计数此类条目(在Unix系统上,对单个文件的多个硬链接只计数一次)。
许可证
根据您的选择,许可如下
- Apache许可证,版本2.0,(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
依赖项
~3MB
~49K SLoC