What problem does it solve? Investigating memory growth in Python programs is confusing because tracemalloc, Memray, Heapy, psutil, and Filprofiler each measure different things, and mixing their numbers leads to wrong conclusions. This Skill guides reproducible memory profiling of the repository's Python example program and explains which tool answers which question. ## Core Features & Use Cases - Tool selection guidance: A decision table maps each memory question (retained Python lines, allocation call stacks, object census, RSS footprint, peak-memory flame graph) to the right profiler and exact repository command. - Reproducible workflows: Pinned Python 3.11.5 setup, deterministic Memray output paths with --force, CI-safe Fil runs with --no-browser, and artifact handling rules for ignored files like memray-*.bin and fil-result/. - Interpretation and pitfalls: Explains why tracemalloc bytes, Memray allocations, Heapy object sizes, and RSS cannot be added together, and how native allocations, allocator arenas, and import-time noise distort results. - Use Case: A developer notices the example program's RSS climbing after parsing a Wikipedia page. They follow the safe investigation sequence: psutil for process impact, tracemalloc for line-level retained bytes, then Memray --native to check whether a C extension explains the gap. ## Quick Start Ask the assistant to profile the memory usage of python/program.py and explain which profiler to run first and why.