Provided by: libjemalloc-dev_5.3.0-1_amd64
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. --pdf 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)