diskus 0.4.0

A minimal, fast alternative to 'du -sh'.
diskus-0.4.0 is not a library.
Visit the last successful build: diskus-0.7.0

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
14.56 GB (14556806983 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' 'sn p -d0 -j8' 'du -sb' 'dust -d0'

(the sudo/sync/drop_caches commands are a way to clear the filesystem caches between benchmarking runs)

Command Mean [s] Min…Max [s]
diskus 1.649 ± 0.009 1.640…1.663
sn p -d0 -j8 9.701 ± 0.067 9.598…9.828
du -sb 16.039 ± 0.069 15.918…16.152
dust -d0 19.769 ± 0.285 19.564…20.561

Warm disk cache

On a warm disk cache, the differences are smaller:

hyperfine --warmup 5 'diskus' 'sn p -d0 -j8' 'du -sb' 'dust -d0'
Command Mean [s] Min…Max [s]
diskus 0.314 ± 0.007 0.303…0.329
sn p -d0 -j8 0.622 ± 0.008 0.611…0.634
du -sb 1.130 ± 0.013 1.116…1.161
dust -d0 3.593 ± 0.057 3.544…3.743

Installation

On Debian-based systems

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

On Arch-based systems

Download from the AUR: diskus or diskus-bin

On other distrubutions

Check out the release page for binary builds.

Via cargo

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

cargo install diskus

License

Licensed under either of

at your option.