1.1 KiB
1.1 KiB
Development
Requires Go (see go.mod). No CGO, no external tools.
make build # bin/mapsize, bin/treegen
make test # go test ./...
make race # go test -race ./...
make vet fmt-check
make benchmark # go test -bench
make fuzz # short fuzz runs of snapshot / treemap / filter
make release # cross-compiled binaries in bin/release
Test data
treegen creates synthetic trees:
bin/treegen --out /tmp/t --directories 50000 --files 1000000 --max-depth 20 --sparse --unicode
bin/mapsize /tmp/t
Profiling
bin/mapsize --no-ui --cpuprofile cpu.prof --memprofile mem.prof /path
go tool pprof -http=: cpu.prof
--log FILE --log-level debug writes a log without disturbing the TUI.
Paths are logged only at debug/trace level.
Layout
See ARCHITECTURE.md. Rules of thumb:
internal/treemapandinternal/filtermust not import UI packages.- Only
internal/platformmay contain OS-specific code (build tags). - All strings derived from filenames go through
textutil.Sanitizebefore reaching a terminal.