Free & Open Source

Who knows where the time goes?

pprofessor is a native sampling profiler for macOS. Spawn a process or attach to a running one — and get a standard pprof profile you can open anywhere.

View on GitHubmacOS · Apple Silicon & Intel
PProfessor app showing an interactive flame graph

Profile anything in one command.

1

Run

Spawn your binary under the profiler and capture it from first instruction to exit. Signals forward to the child.

2

Or attach

Attach to a running process by PID. Ctrl-C when you have enough samples and the profile is written out.

3

Open it anywhere

The output is standard gzip-compressed pprof — go tool pprof, Grafana, or Sequins.

profile.sh
# Profile a command, start to finish
pprofessor run --freq 99 ./my-binary

# Or attach to a running process
pprofessor attach 12345

# Explore the result
go tool pprof -http=:8080 profile.pb.gz

No language SDKs, no recompiling — pprofessor samples native stacks from outside the process.

Native, accurate, and standard.

Run & attach modes

Profile a child process from its very first sample, or clip into anything already running by PID.

DWARF symbolication

Function names, files, and line numbers resolved with addr2line and gimli. No guessing from symbol exports.

Apple Silicon native

Frame-pointer stack walking on aarch64 and x86_64, with PAC-bit stripping on Apple Silicon.

Standard pprof output

Gzip-compressed protobuf that any pprof-compatible tool reads. No custom formats, no lock-in.

Profiles feel at home in Sequins.

Drop your pprofessor profiles into Sequins for interactive flame graphs next to your traces, logs, and metrics — all local, all free.