Files
mapsize/DEVELOPMENT.md
T

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/treemap and internal/filter must not import UI packages.
  • Only internal/platform may contain OS-specific code (build tags).
  • All strings derived from filenames go through textutil.Sanitize before reaching a terminal.