So as of now I can load Coldshot profiles into RunSnakeRun. So far they are no more informative than a cProfile profile. Now the fun part is seeing what kind of tools can actually be fashioned when you have all of this information...
- per-thread views (I think that's a given)
- browse into set of all calls, with calls split up by e.g. bins of run-times
- individual calls by "time line" of calls as a graph of time vs. run-time
- bins of "path" maps of a function (basically see the function calls split by what set of lines they followed)
- browse simple collection of lines over the aggregate
- browse lines (across all functions)
- browse a call tree from a given call instance
- progressive views (load the first N records, view, then continue N more, view, etc)
I'm sure there are other useful visualizations you could come up with, if you have something you've always wanted to see in a profiling tool, let me know. I've still got a week or so of playing before PyCon.ca to work on this (well, need to spend some time on an actual presentation too, I suppose).
The loader is moderately fast, so for now I'm willing to do a full re-scan of a data-file to pull out new views, but eventually will need to do some indexing, 9s for 581MB is acceptable during testing, but that's only a 160s profile... real profiles are likely going to include multi-GB monsters.
Pingbacks are closed.