You can move the plot slider to select different ranges for the flame
graph. The flame graph shows the allocations that are created in the
selected range that are not deallocated before the end of the range.
Memray run stats
Command line: /Users/mgmacias/Documents/GitHub/memray/env/lib/python3.11/site-packages/memray/__main__.py run fib.py --trace-python-allocators
Start time: 2023-06-16 16:36:12.454000
End time: 2023-06-16 16:36:12.952000
Total number of allocations: 287544
Total number of frames seen: 73
Peak memory usage: 469.0 MiB
Python allocator: pymalloc
How to interpret temporal flamegraph reports
The flame graph displays a snapshot of memory used across stack frames at the time when the memory usage was at its peak.
Initially the report shows allocations made at any time and not freed before
tracking was deactivated. By using the two sliders on the bottom line chart,
you can select a different time range for analysis instead. The flame graph
will be updated to reflect allocations made within your chosen time window
and not freed within it.
The vertical ordering of the stack frames corresponds to the order of function calls, from parent to children.
The horizontal ordering does not represent the passage of time in the application: they simply represent child frames in arbitrary order.
On the flame graph, each bar represents a stack frame and shows the code which triggered the memory allocation.
Hovering over the frame you can also see the overall memory allocated in the given frame and its children and the number of times allocations have occurred.
The Show/Hide Irrelevant Frames button can be used to reveal and hide frames which contain allocations in code which might not be
relevant for the application. These include frames in the CPython eval loop as well as frames introduced by memray during the analysis.