Scroll to navigation

JEPROF(1) User Manual JEPROF(1)

NAME

jeprof - analyze and print jemalloc's heap profile dumps

SYNOPSIS

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:

Interactive mode. <profiles> is a space separated list of profile names.
<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).
<profile> is a remote form. Each name can be:
/path/to/profile
a path to a profile file
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:

If /<service> is omitted, the service defaults to /pprof/profile (CPU profiling).

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

Sort by cumulative data.
Subtract <base> from <profile> before display.
Run in interactive mode. (interactive "help" gives help) [default]
Length of time for dynamic profiles. [default=30 secs]
Read additional symbols and line info from the given library.
Comma separated list of library path prefixes.

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.
Generate callgrind format to stdout.
Generate Postscript and display.
Generate PDF and display.
Generate SVG and display.
Generate source listing of matching routines.
Generate disassembly of matching routines.
Print demangled symbol names found at given addresses.
Generate DOT file to stdout.
Generate PostScript to stdout.
Generate PDF to stdout.
Generate SVG to stdout.
Generate GIF to stdout.
Generate symbolized jeprof data (useful with remote fetch).

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 negative differences.

Contention-profile options

Display total delay at each region. [default]
Display number of delays at each region.
Display mean delay at each region.

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]
Max incoming/outgoing edges per node. [default=8]
Focus on backtraces with nodes matching regexp.
Show profile for thread n.
Ignore backtraces with nodes matching regexp.
Set GV scaling. [default=0]
Make nodes with non-0 object counts (i.e. direct leak generators) more visible.
Retain only nodes that match regexp.
Exclude all nodes that match regexp.

Miscellaneous

Path for object tool pathnames.
Run unit tests.
This message.
Version information.

ENVIRONMENT

The following environment variables affect the execution of jeprof:

Profiles directory. Defaults to $HOME/jeprof.
Prefix for object tools pathnames.

EXAMPLES

Enters interactive mode.
Generates one line per procedure.
Displays annotated call-graph in web browser.
Generates annotated call-graph and displays via gv.
Restrict to code paths that involve an entry that matches Mutex.
Restrict to code paths that involve an entry that matches Mutex and does not match string.
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.
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.
http://localhost:1234/
Enters interactive mode.
Outputs one line per procedure for localhost:1234.
Fetches a remote profile for later analysis and then analyzes it in text mode.

SEE ALSO

jemalloc(3)

2019-01-12 jemalloc 5.1.0_0