Stats Reporter#

The stats reporter generates high level statistics about the tracked process’s memory allocations. By default, it computes these statistics for the moment when the tracked process’s memory usage was at its peak, but it can optionally compute the stats for all allocations instead.

_images/stats_example.png

The output includes the following:

  • Total number of allocations performed

  • Total amount of memory allocated

  • Histogram displaying the distribution of allocation sizes. The y-axis data (size) is logarithmic.

  • Distribution of allocation types (e.g. MALLOC, CALLOC, MMAP, etc.)

  • Stack trace and size of the top ‘n’ largest allocating locations by size (default: 5, configurable with the -n command line param)

  • Stack trace and count of the top ‘n’ largest allocating locations by number of allocations (default: 5, configurable with the -n command line param)

Note

By default, the statistics are displayed only for the time when the memory usage was at its peak. However, it is possible to use the -a command line argument to consider all allocations throughout the life of the process. Including all allocations slows this reporter down drastically.

Basic Usage#

The general form of the stats subcommand is:

memray stats [options] <results>

The only argument the tree subcommand requires is the capture file previously generated using the run subcommand.

The output will be printed directly to the standard output of the terminal.

CLI Reference#

usage: memray stats [-h] [-a] [-n NUM_LARGEST] results

Positional Arguments#

results

Results of the tracker run

options#

-a, --include-all-allocations

Include all allocations in the results, instead of peak-memory snapshot (Warning: could be much slower)

Default: False

-n, --num-largest

Displays the top ‘n’ largest allocating functions. Default is 5

Default: 5

Please submit feedback, ideas, and bug reports by filing a new issue at https://github.com/bloomberg/memray/issues