diskus

A minimal, fast alternative to 'du -sh'

Github星跟蹤圖

diskus

Build Status

A minimal, fast alternative to du -sh.

diskus is a very simple program that computes the total size of the current directory. It is a
parallelized version of du -sh. On my 8-core laptop, it is about ten times faster than du with
a cold disk cache and more than three times faster with a warm disk cache.

> diskus
9.59 GB (9,587,408,896 bytes)

Benchmark

The following benchmarks have been performed with hyperfine on
a moderately large folder (15GB, 100k directories, 400k files). Smaller folders are not really of any
interest since all programs would finish in a reasonable time that would not interrupt your workflow.

In addition to du and diskus, we also add tin-summer (sn) and
dust in our comparison. Both are also written in Rust and provide
much more features than diskus (check them out!). The optimal number of threads for sn (-j option) was
determined via hyperfine --parameter-scan.

Cold disk cache

sudo -v
hyperfine --prepare 'sync; echo 3, sudo tee /proc/sys/vm/drop_caches' \
    'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'

(the sudo/sync/drop_caches commands are a way to
clear the filesystem caches between benchmarking runs), Command, Mean [s], Min [s], Max [s], Relative, :---, ---:, ---:, ---:, ---:, 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, ### Warm disk cache

On a warm disk cache, the differences are smaller:

hyperfine --warmup 5 'diskus' 'du -sh' 'sn p -d0 -j8' 'dust -d0'
```, Command, Mean [ms], Min [ms], Max [ms], Relative, :---, ---:, ---:, ---:, ---:, `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, ## Installation

### On Debian-based systems

You can download the latest Debian package from the
[release page](https://github.com/sharkdp/diskus/releases) and install it via `dpkg`:

``` bash
wget "https://github.com/sharkdp/diskus/releases/download/v0.6.0/diskus_0.6.0_amd64.deb"
sudo dpkg -i diskus_0.6.0_amd64.deb

On Arch-based systems

pacman -S diskus

Or download diskus-bin from the AUR.

On Void-based systems

xbps-install diskus

On macOS

You can install diskus with Homebrew:

brew install diskus

Or with MacPorts:

sudo port install diskus

On Haiku

pkgman install diskus

On NixOS

nix-env -iA nixos.diskus

Or add it to environment.systemPackages in your configuration.nix.

On other systems

Check out the release page for binary builds.

Via cargo

If you have Rust 1.34 or higher, you can install diskus from source via cargo:

cargo install diskus

Windows caveats

Windows-internal tools such as Powershell, Explorer or dir are not respecting hardlinks or
junction points when determining the size of a directory. diskus does the same and counts
such entries multiple times (on Unix systems, multiple hardlinks to a single file are counted
just once).

License

Licensed under either of

at your option.

主要指標

概覽
名稱與所有者sharkdp/diskus
主編程語言Rust
編程語言Rust (語言數: 1)
平台
許可證Apache License 2.0
所有者活动
創建於2018-11-01 16:50:49
推送於2024-12-27 19:25:57
最后一次提交2024-12-27 20:25:55
發布數9
最新版本名稱v0.8.0 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數1.1k
關注者數17
派生數40
提交數103
已啟用問題?
問題數33
打開的問題數8
拉請求數14
打開的拉請求數3
關閉的拉請求數6
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?