filprofiler
filprofiler copied to clipboard
A Python memory profiler for data processing and scientific computing applications
Using runtime instrumentation would allow not having to start with Fil from the very start, and would make it safe to use with production servers. In particular, for long-running servers...
For CUDA it's possible we can track allocations by intercepting `cudaMalloc()` and friends. This would need to be tracked and reported separately than CPU memory. https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__MEMORY.html
Once #12 is done, consider support for Spyrder as another scientific computing environment.
Users might want to parse that, and the `@@TB` stuff is internal implementation detail that shouldn't be leaked.
For profiling, the real usage pattern is: 1. Run with current code. 2. Try to fix code. 3. Run again, figure out difference, go to step 2 if not fixed....
### Goals: 1. Persistence could enable better UX, e.g. for crashes. 2. Reduce memory overhead from tracking allocations. ### Things to look for: 1. Ability to create snapshots, for peak...
Would need to compare performance to the native allocator first.
The theory: memory tracking overhead mostly matters if you have lots of small allocations. If you have lots of small allocations, they will end up in similar parts of the...
Additionally, replace line number with bytecode index, deferring line number calculation to report-generation time. Together these changes should speed up the tracing part of the proflier. This in progress in...