No description
Find a file
Yorhel c27dca1fba Parallel scanning: early proof-of-concept implementation
And it's not looking well; this implementation seems to be 3x slower in
the hot cache scenario with -J8, which is a major regression. There's
way too much lock contention and context switching.

Haven't tested with actual disk I/O yet and I've not yet measured how
much parallelism this approach will actually get us in practice, nor
whether the disk access patterns of this approach make a whole lot of
sense.  Maybe this low-memory approach will not work out and I'll end up
rewriting this to scan disjoint subtrees after all.

TODO:
- Validate how much parallelism we can actually get with this algorithm
- Lots of benchmarking and tuning (and most likely some re-architecting)
- Re-implement exclude pattern matching
- Document -J option
- Make OOM handling thread-safe
2022-02-07 14:13:36 +01:00
LICENSES Add REUSE-compliant copyright headers 2021-07-18 11:50:50 +02:00
src Parallel scanning: early proof-of-concept implementation 2022-02-07 14:13:36 +01:00
.gitignore Add REUSE-compliant copyright headers 2021-07-18 11:50:50 +02:00
build.zig Version 2.0.1 + copyright year bump 2022-01-01 16:01:47 +01:00
ChangeLog Version 2.1; remove 1.x changes from the ChangeLog 2022-02-07 13:59:22 +01:00
Makefile Version 2.0.1 + copyright year bump 2022-01-01 16:01:47 +01:00
ncdu.pod Add --graph-style option and Unicode graph drawing 2022-02-03 16:10:18 +01:00
README.md Version 2.0.1 + copyright year bump 2022-01-01 16:01:47 +01:00

ncdu-zig

Description

Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.

See the ncdu 2 release announcement for information about the differences between this Zig implementation (2.x) and the C version (1.x).

Requirements

  • Zig 0.9.0
  • Some sort of POSIX-like OS
  • ncurses libraries and header files

Install

You can use the Zig build system if you're familiar with that.

There's also a handy Makefile that supports the typical targets, e.g.:

make
sudo make install PREFIX=/usr