Man page - jeprof(1)
Packages contains this manual
apt-get install libjemalloc-dev
Manual
JEPROF
NAMESYNOPSIS
DESCRIPTION
OPTIONS AND ARGUMENTS
Options
Reporting granularity
Output type
Heap-profile options
Contention-profile options
Call-graph options
Miscellaneous
ENVIRONMENT
EXAMPLES
SEE ALSO
NAME
jeprof - analyze and print jemalloc’s heap profile dumps
SYNOPSIS
jeprof
[
options
] <
program
>
<
profiles
>
jeprof
[
options
]
<
symbolized-profiles
>
jeprof
[
options
] <
profile
>
jeprof
--symbols
program
DESCRIPTION
jeprof can be used to parse, analyze and generate user-readable output from jemalloc’s memory profile dumps. Refer to jemalloc (3) or the jemalloc website <http://jemalloc.net/> about jemalloc and the opt.prof option.
jeprof is based on pprof (1) that is developed as part of the <https://github.com/gperftools/gperftools> gperftools package.
Common usage:
jeprof
[
options
] <
program
>
<
profiles
>
Interactive mode. < profiles > is a space separated list of profile names.
jeprof [ options ] < symbolized-profiles >
< symbolized-profiles > is a list of profile files where each file contains the necessary symbol mappings as well as profile data (likely generated with --raw).
jeprof [ options ] < profile >
<
profile
> is a
remote form. Each name can be:
/path/to/profile
a path to a profile file
host:port[/<service ]>
a location of a service to get the profile from.
/<service> can be /pprof/heap, /pprof/profile, /pprof/pmuprofile, /pprof/growth, /pprof/contention, /pprof/wall, /pprof/censusprofile, or /pprof/filteredprofile.
For instance:
jeprof http://myserver.example.com:80/pprof/heap
If /<service> is omitted, the service defaults to /pprof/profile ( CPU profiling).
jeprof --symbols program
Maps addresses to symbol names. In this mode, stdin should be a list of library mappings, in the same format as is found in the heap- and CPU-profile files (this loosely matches that of /proc/self/maps on Linux), followed by a list of hex addresses to map, one per line.
OPTIONS AND ARGUMENTS
Options
--cum
Sort by cumulative data.
--base= base
Subtract <base> from <profile> before display.
--interactive
Run in interactive mode. (interactive "help" gives help) [default]
--seconds= n
Length of time for dynamic profiles. [default=30 secs]
--add_lib= file
Read additional symbols and line info from the given library.
--lib_prefix= dir
Comma separated list of library path prefixes.
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.
--callgrind
Generate callgrind format to stdout.
--gv
Generate Postscript and display.
--evince
Generate PDF and display.
--web
Generate SVG and display.
--list= regexp
Generate source listing of matching routines.
--disasm= regexp
Generate disassembly of matching routines.
--symbols
Print demangled symbol names found at given addresses.
--dot
Generate DOT file to stdout.
--ps
Generate PostScript to stdout.
Generate PDF to stdout.
--svg
Generate SVG to stdout.
--gif
Generate GIF to stdout.
--raw
Generate symbolized jeprof data (useful with remote fetch).
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 negative differences.
Contention-profile options
--total_delay
Display total delay at each region. [default]
--contentions
Display number of delays at each region.
--mean_delay
Display mean delay at each region.
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]
--maxdegree= n
Max incoming/outgoing edges per node. [default=8]
--focus= regexp
Focus on backtraces with nodes matching regexp .
--thread= n
Show profile for thread n .
--ignore= regexp
Ignore backtraces with nodes matching regexp .
--scale= n
Set GV scaling. [default=0]
--heapcheck
Make nodes with non-0 object counts (i.e. direct leak generators) more visible.
--retain= regexp
Retain only nodes that match regexp .
--exclude= regexp
Exclude all nodes that match regexp .
Miscellaneous
--tools= prefix or --tools= binary:fullpath[,...]
Path for object tool pathnames.
--test
Run unit tests.
--help
This message.
--version
Version information.
ENVIRONMENT
The following
environment variables affect the execution of jeprof:
JEPROF_TMPDIR
Profiles directory. Defaults to $HOME/jeprof.
JEPROF_TOOLS
Prefix for object tools pathnames.
EXAMPLES
jeprof /bin/ls ls.prof
Enters interactive mode.
jeprof --text /bin/ls ls.prof
Generates one line per procedure.
jeprof --web /bin/ls ls.prof
Displays annotated call-graph in web browser.
jeprof --gv /bin/ls ls.prof
Generates annotated call-graph and displays via gv .
jeprof --gv --focus=Mutex /bin/ls ls.prof
Restrict to code paths that involve an entry that matches Mutex .
jeprof --gv --focus=Mutex --ignore=string /bin/ls ls.prof
Restrict to code paths that involve an entry that matches Mutex and does not match string .
jeprof --list=getdir /bin/ls ls.prof
Generates disassembly listing of all routines with at least one sample that match getdir() . The listing is annotated with the flat and cumulative sample counts at each line.
jeprof --disasm=getdir /bin/ls ls.prof
Generates disassembly listing of all routines with at least one sample that match getdir() . The listing is annotated with the flat and cumulative sample counts at each PC value.
jeprof http://localhost:1234/
Enters interactive mode.
jeprof --text localhost:1234
Outputs one line per procedure for localhost:1234.
jeprof --raw localhost:1234 > ./local.raw; jeprof --text ./local.raw
Fetches a remote profile for later analysis and then analyzes it in text mode.
SEE ALSO
jemalloc (3)