pprof - Man Page

manual page for pprof (part of gperftools)

Examples (TL;DR)


pprof [options] <program> <profile>


Prints specified cpu- or heap-profile



Sort by cumulative data


Subtract <base> from <profile> before display

Reporting Granularity


Report at address level


Report at source line level


Report at function level [default]


Report at source file level

Output type


Generate text report [default]


Generate Postscript and display


Generate source listing of matching routines


Generate disassembly of matching routines


Generate DOT file to stdout


Generate Postscript to stdout


Generate PDF to stdout


Generate GIF to stdout

Heap-Profile Options


Display in-use (mega)bytes [default]


Display in-use objects


Display allocated (mega)bytes


Display allocated objects


Display space in bytes


Ignore negaive differences

Call-graph Options


Show at most so many nodes [default=80]


Hide nodes below <f>*total [default=.005]


Hide edges below <f>*total [default=.001]


Focus on nodes matching <regexp>


Ignore nodes matching <regexp>


Set GV scaling [default=0]


pprof /bin/ls ls.prof

Outputs one line per procedure

pprof --gv /bin/ls ls.prof

Displays annotated call-graph via 'gv'

pprof --gv --focus=Mutex /bin/ls ls.prof

Restricts to code paths including a .*Mutex.* entry

pprof --gv --focus=Mutex --ignore=string /bin/ls ls.prof

Code paths including Mutex but not string

pprof --list=getdir /bin/ls ls.prof

Dissassembly (with per-line annotations) for getdir()

pprof --disasm=getdir /bin/ls ls.prof

Dissassembly (with per-PC annotations) for getdir()

See Also

Further documentation for pprof is maintained as a web page called cpu_profiler.html and is likely installed at one of the following locations:



February 2005 pprof (part of gperftools) Google