Add datastructure and tools for building and printing stack traces / ref trees conveniently #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
Building stacks will be a very common thing to do in profiler, either stacks by occurrence, stacks by thread group, reference tree, ... It's worth making something generic and convenient to use.
Example usage
Let's say we want to print stacktraces:
We make a sequences field in out profiler
Vec<FunctionID>
is the stack,usize
is the number of times this stack was encountered. This is convenient to use and very performant while the profiler runs since there is no search to do, everything is O(1).When we're done profiling, we build a tree using
Then we can sort our tree let's say by descending inclusive calls (this is usually what we want) with
Then it should be a lot easier to print our stacks into HTML or whatever