pprof - Man Page
manual page for pprof (part of gperftools)
Examples (TL;DR)
- Generate a text report from a specific profiling file, on fibbo binary:
pprof -top ./fibbo ./fibbo-profile.pb.gz
- Generate a graph and open it on a web browser:
pprof -svg ./fibbo ./fibbo-profile.pb.gz
- Run pprof in interactive mode to be able to manually launch
pprof
on a file:pprof ./fibbo ./fibbo-profile.pb.gz
- Run a web server that serves a web interface on top of
pprof
:pprof -http=localhost:8080 ./fibbo ./fibbo-profile.pb.gz
- Fetch a profile from an HTTP server and generate a report:
pprof http://localhost:8080/debug/pprof
Synopsis
pprof [options] <program> <profile>
Description
Prints specified cpu- or heap-profile
Options
- --cum
Sort by cumulative data
- --base=<base>
Subtract <base> from <profile> before display
Reporting Granularity
- --addresses
Report at address level
- --lines
Report at source line level
- --functions
Report at function level [default]
- --files
Report at source file level
Output type
- --text
Generate text report [default]
- --gv
Generate Postscript and display
- --list=<regexp>
Generate source listing of matching routines
- --disasm=<regexp>
Generate disassembly of matching routines
- --dot
Generate DOT file to stdout
- --ps
Generate Postscript to stdout
Generate PDF to stdout
- --gif
Generate GIF to stdout
Heap-Profile Options
- --inuse_space
Display in-use (mega)bytes [default]
- --inuse_objects
Display in-use objects
- --alloc_space
Display allocated (mega)bytes
- --alloc_objects
Display allocated objects
- --show_bytes
Display space in bytes
- --drop_negative
Ignore negaive differences
Call-graph Options
- --nodecount=<n>
Show at most so many nodes [default=80]
- --nodefraction=<f>
Hide nodes below <f>*total [default=.005]
- --edgefraction=<f>
Hide edges below <f>*total [default=.001]
- --focus=<regexp>
Focus on nodes matching <regexp>
- --ignore=<regexp>
Ignore nodes matching <regexp>
- --scale=<n>
Set GV scaling [default=0]
Examples
- 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()
Copyright
Copyright © 2005 Google Inc.
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:
/usr/share/gperftools/cpu_profiler.html
/usr/local/share/gperftools/cpu_profiler.html