Created by: itamarst
What is this Python project?
Fil is a memory profiler aimed at data batch processing applications.
What's the difference between this Python project and similar ones?
- Fil figures out peak memory usage, and then tells you which function stacks were responsible for allocating it.
- Fil can dump the source of allocations when your program crashes due to lack of memory.
- Fil can track any allocation made via standard C memory allocation APIs, not just Python-native code.
- You get lovely flamegraphs, so you can visually see exactly where memory came from (https://pythonspeed.com/products/filmemoryprofiler/memory-graph.svg)
Compared to other tools:
- memory-profiler tells you how much a line of code has allocated, and that's it. So you need to manually apply it to each function that gets called, and it can be very easy to miss that one place where memory spiked by 1GB and then immediately dropped, because it's on a single line.
- tracemalloc can't handle non-Python memory allocations.
--
Anyone who agrees with this pull request could submit an Approve review to it.