pproftui is a terminal-based UI for Go's pprof that makes profiling interactive, intuitive, and fast. It's designed to help you pinpoint performance issues without the context-switching of a web browser and to provide built-in explanations for profiling concepts.

pproftui?The standard go tool pprof is powerful but can be unintuitive. You're often left wondering:
flat vs cum actually mean?"pproftui solves these problems directly:
p to instantly hide all the runtime and vendor noise.pproftui at a running service and watch its profile update in real-time.cpu, inuse_space, flat vs cum) right when you need them.go install github.com/Oloruntobi1/pproftui@latest
Here are practical recipes for solving common performance problems with pproftui.
You've noticed a function is slow. Let's get a CPU profile and explore it.
Generate the profile:
go test -bench=. -cpuprofile=cpu.prof
Analyze it with pproftui:
pproftui cpu.prof
c to toggle between the source code view and the callers/callees graph.F1 at any time if you're unsure what the profile type means.You suspect a recent commit made things slower. pproftui's diffing is its superpower.
Get a profile from your main branch:
git checkout main
go test -bench=. -cpuprofile=main.prof
Get a profile from your feature branch:
git checkout your-feature-branch
go test -bench=. -cpuprofile=feature.prof
Diff them:
pproftui main.prof feature.prof
pproftui will now show you the delta. Green (+) means more resources were used in feature.prof, red (-) means less. Use this to navigate the graph and find the exact function that introduced the new overhead.
You want to see how your application behaves under load in a staging environment.
net/http/pprof)pproftui in live mode:
# This will fetch a 5-second CPU profile every 10 seconds.
pproftui -live="http://localhost:6060/debug/pprof/profile?seconds=5" -refresh=10s
space to pause and resume the live updates.Profiles are full of runtime and library code. Here's how to focus on what matters: your code.
# Provide your project's go module path
pproftui --module-path="github.com/your/project" cpu.prof
★.p to toggle "Project Only" mode, instantly hiding everything else.| Key | Action |
|---|---|
↑/↓ | Navigate the functions list |
t | Toggle profile type (inuse_space, alloc_objects) |
c | Toggle between code and call graph view |
p | Toggle project-only code filter |
s | Cycle sort order (Self, Total, Name) |
f | Toggle flame graph view |
Enter | In flame graph: Zoom in on selected function |
Esc | In flame graph: Zoom out |
F1 | Show detailed help and explanations |
q / ctrl+c | Quit |
MIT
3,291 followers · starred Jul 2025
347 followers · starred Jul 2025
1,475 followers · starred Jul 2025
653 followers · starred Jul 2025
pproftui is a terminal-based UI for Go's pprof that makes profiling interactive, intuitive, and fast. It's designed to help you pinpoint performance issues without the context-switching of a web browser and to provide built-in explanations for profiling concepts.

pproftui?The standard go tool pprof is powerful but can be unintuitive. You're often left wondering:
flat vs cum actually mean?"pproftui solves these problems directly:
p to instantly hide all the runtime and vendor noise.pproftui at a running service and watch its profile update in real-time.cpu, inuse_space, flat vs cum) right when you need them.go install github.com/Oloruntobi1/pproftui@latest
Here are practical recipes for solving common performance problems with pproftui.
You've noticed a function is slow. Let's get a CPU profile and explore it.
Generate the profile:
go test -bench=. -cpuprofile=cpu.prof
Analyze it with pproftui:
pproftui cpu.prof
c to toggle between the source code view and the callers/callees graph.F1 at any time if you're unsure what the profile type means.You suspect a recent commit made things slower. pproftui's diffing is its superpower.
Get a profile from your main branch:
git checkout main
go test -bench=. -cpuprofile=main.prof
Get a profile from your feature branch:
git checkout your-feature-branch
go test -bench=. -cpuprofile=feature.prof
Diff them:
pproftui main.prof feature.prof
pproftui will now show you the delta. Green (+) means more resources were used in feature.prof, red (-) means less. Use this to navigate the graph and find the exact function that introduced the new overhead.
You want to see how your application behaves under load in a staging environment.
net/http/pprof)pproftui in live mode:
# This will fetch a 5-second CPU profile every 10 seconds.
pproftui -live="http://localhost:6060/debug/pprof/profile?seconds=5" -refresh=10s
space to pause and resume the live updates.Profiles are full of runtime and library code. Here's how to focus on what matters: your code.
# Provide your project's go module path
pproftui --module-path="github.com/your/project" cpu.prof
★.p to toggle "Project Only" mode, instantly hiding everything else.| Key | Action |
|---|---|
↑/↓ | Navigate the functions list |
t | Toggle profile type (inuse_space, alloc_objects) |
c | Toggle between code and call graph view |
p | Toggle project-only code filter |
s | Cycle sort order (Self, Total, Name) |
f | Toggle flame graph view |
Enter | In flame graph: Zoom in on selected function |
Esc | In flame graph: Zoom out |
F1 | Show detailed help and explanations |
q / ctrl+c | Quit |
MIT
3,291 followers · starred Jul 2025
347 followers · starred Jul 2025
1,475 followers · starred Jul 2025
653 followers · starred Jul 2025