Some of our tools do so much allocation that capturing all the information (using MTuner) to disk and later loading require by itself hundreths of GB. Instead I've added random sampling - e.g. if ptr % modulo > level - output it or not. Another factor that slows down is doing a callstack capture. It's not for free at all, like on Windows it has to go through the exception handlers, etc. I think perfetto simply captur…
Another thing: you can always just runtime attach and profile a partial time to reduce the amount of data recorded.
Finally: if your tools do so many allocations, maybe you should consider optimizing them...