We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I am currently profiling performance using streamline, whose version is 7.8.0.
We have a function: `Dummy_BuildAnimTrackPairs_Switch` and this function is only called in function `BuildAnimTrackPairs` in worker thread.
But it is strange that there are two call paths of `Dummy_BuildAnimTrackPairs_Switch` with different sample number in `Call Paths` tab like this:
What does this mean please? Is one of them the function-call overhead?
Hi NoahZuoThis most likely just means that the kernel's unwinder did not correctly unwind the call stack; the unwinder is very simple and expects a fixed stack frame layout when unwinding. There is a small chance the sample landed in the function prologue/epilogue, or as a side affect of how the compiler might have performed inlining, or if the compiler had introduced a tail call, or some other similar optimisation, then the frame layout on the stack / contents of LR may not have been as the unwinder expected causing it to miss the parent function.
I'd suggest that if you know that `Dummy_BuildAnimTrackPairs_Switch` is only ever called from `BuildAnimTrackPairs`, then you treat those two entries as the same call path.
HTHBen