| One thing to note is that we support tracking forked/child processes as well! >> - Much lower overhead, sounds like. I actually think Fil has the potential to be faster in some situations because it seems that aggregates the flamegraph in memory. Memray needs to do a ton of I/O to disk holding a lock so if is under very heavy pressure it will be a bit slow. Here are some non-very scientific tests running the "test_list" file from the CPython test suite: * With pymalloc active (not a lot of heavy presure): $ fil-profile run -m test test_list
...
Total duration: 278 ms $ memray3.10 run -m test test_list
...
Total duration: 128 ms * With pymalloc not active (heavy presure): $ PYTHONMALLOC=malloc fil-profile run -m test test_list
...
Total duration: 278 ms $ PYTHONMALLOC=malloc memray3.10 run -m test test_list Total duration: 344 ms So as you can see Fil is 20% faster than memray in this scenario. This means that Fil is doing a fantastic job! We spent a lot of time optimizing memray and the fact that Fil can beat it is a testament to Fil's quality :) |