prof

module
v1.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2026 License: MIT

README

Prof

Prof

Go benchmark profiling: go test + pprof, output under bench/<tag>/, compare two runs.

GoDoc Go Report Card Version Go Version

Documentation · Demo (CLI) · Demo (TUI)

Start here

From your module root (go.mod):

prof ui

Menus first; prof auto, prof track, and flags are for scripts and CI. Examples, flags, and layout: documentation site (Quickstart, Collect, Compare).

Shell completion: prof completion -h.

Install

go install github.com/AlexsanderHamir/prof/cmd/prof@latest

Requirements

Go 1.24.3+, optional Graphviz for PNG call graphs, go.mod at project root.

License

MIT

Directories

Path Synopsis
cmd
prof command
engine
benchmark
Package benchmark runs `go test` benchmarks with profiling flags, materializes outputs under bench/<tag>/, drives pprof text/PNG and per-function extraction via collector, and discovers Benchmark* functions in the module.
Package benchmark runs `go test` benchmarks with profiling flags, materializes outputs under bench/<tag>/, drives pprof text/PNG and per-function extraction via collector, and discovers Benchmark* functions in the module.
collector
Package collector organizes manual pprof inputs under the bench/ tree: full-profile text, optional package-grouped views, per-function pprof list output, and shared pprof CLI helpers used by the benchmark engine.
Package collector organizes manual pprof inputs under the bench/ tree: full-profile text, optional package-grouped views, per-function pprof list output, and shared pprof CLI helpers used by the benchmark engine.
tools/benchstats
Package benchstats wraps the benchstat CLI to compare two collected benchmark text files.
Package benchstats wraps the benchstat CLI to compare two collected benchmark text files.
tools/qcachegrind
Package qcachegrind generates callgrind output from a collected binary profile and launches qcachegrind.
Package qcachegrind generates callgrind output from a collected binary profile and launches qcachegrind.
tracker
Package tracker compares two prof runs (auto layout or manual text paths), builds a change report, and applies optional CI/CD thresholds from repo config.
Package tracker compares two prof runs (auto layout or manual text paths), builds a change report, and applies optional CI/CD thresholds from repo config.
Package internal holds shared configuration (Config, BenchArgs), path constants ([const.go]), config/template IO (PrintConfiguration, LoadFromFile), and thin wrappers around lower-level helpers.
Package internal holds shared configuration (Config, BenchArgs), path constants ([const.go]), config/template IO (PrintConfiguration, LoadFromFile), and thin wrappers around lower-level helpers.
app
Package app defines the CLI composition root (Services): inject interfaces to swap benchmark, collector, tracker, tools, or setup without changing cobra command wiring.
Package app defines the CLI composition root (Services): inject interfaces to swap benchmark, collector, tracker, tools, or setup without changing cobra command wiring.
repofs
Package repofs holds repository filesystem helpers: locating the Go module root and tag directories.
Package repofs holds repository filesystem helpers: locating the Go module root and tag directories.
tui
Package parser reads Go pprof profiles and builds flat/cumulative summaries, function lists, and package-grouped markdown reports.
Package parser reads Go pprof profiles and builds flat/cumulative summaries, function lists, and package-grouped markdown reports.
Package tests holds the integration / blackbox test harness for prof.
Package tests holds the integration / blackbox test harness for prof.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL