Report generated using "--leaks" using pymalloc allocator

This report for memory leaks was generated with the pymalloc allocator active. This can show confusing results because the Python allocator doesn't necessarily release memory to the system when Python objects are deallocated and these can still appear as "leaks". If you want to exclude these, you can run your application with the `PYTHONMALLOC=malloc` environment variable set.

##### Memray run stats

Command line: `/Users/uweschmitt/Projects/fast-python/venv/lib/python3.11/site-packages/ipykernel_launcher.py -f /Users/uweschmitt/Library/Jupyter/runtime/kernel-2707a72b-0d12-4084-a227-7979aad55d20.json`
Start time: 2025-01-23 13:38:45.177000
End time: 2025-01-23 13:38:45.304000
Total number of allocations: 130
Total number of frames seen: 51
Peak memory usage: 839.2 MiB
Python allocator: pymalloc

##### How to interpret flamegraph reports

The flame graph displays stack frames at allocation, for memory that was leaked during the tracking period (i.e. allocated and not deallocated).

Note that the Python allocator doesn't necessarily release memory to the system when Python objects are deallocated and these can still appear as "leaks". If you want to exclude these, you can run your application with the `PYTHONMALLOC=malloc` environment variable set.

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.

You can find more information in the documentation.

##### Resident set size over time