Hot Path

While the timeline shows a flame graph plotting activity depth against wall clock time, the Hot Path view shows a flame chart plotting activity depth against aggregated time contribution. It groups equal stacks together summing their contributions. It then also sorts larger contributors to the left. Using this approach you will see the stacks that have the largest contributions to total time spent on the left. Here’s a screenshot of a Hot Path populated from the example’s Low Frequency Channel:

../_images/hotpath_view.png

Timespan Selector

../_images/hotpath_timespan.png
Instead of a timeline, the Hot Path view shows a selector for it’s time span.
The Hot Path needs to know which activities to aggregate and which to ignore. For example you could have a session where you’ve profiled for a couple of minutes and you’ve found a 5 second area of interest. Then you’d want to see the Hot Path for that smaller area.
You can drag the handles on either side to the desired area or drag the bar left and right to shift your timeframe.

Note

The Hot Path’s time span is synchronized with the Timeline view. If you’ve found an area of interest in the timeline, zoom in on it as much as you can and then switch to the Hot Path and it’ll only aggregate that area.

Flame Chart

The view shows a flame chart for each activity channel. In case of our example it’s not very interesting as we dont call a large amount of functions, but lets break it down anyway.
Again we have the stack based approach where the bottom activity is one calling those on top. Stack 0 calls Stack 1 which calls Stack 2 etc etc. On the horizontal axis is the total contribution of that stack to the selected time span. So in our case Stack 4 has no children so all time is spent in there. Stack 4 is about 40% the width of Stack 3 though, which means that much time is spent in Stack 4, and inversely about 60% of time spent by Stack 3 is spent inside that activity itself.
Stack 0 on the bottom takes up the largest amount of time, almost 100% of the selected timespan. As you can see though Stack1 takes up about 90% of that, so in reality Stack 0 only spent 10% within itself.

Selection

You can select stacks by clicking on an activity, this selects that activity and parents until it gets to the bottom one. In our example above we’ve slelected the activity called “Stack 2”.

Stack

On the left side of the selection panel we can see each parent having it’s most immediate parent on the top and it’s farthest grandparent on the bottom. This table contains a couple of columns with information:

  • % Of Total: This column tells you how much the selected stack level contributes to the total amount of time visible in the Hot Path.

  • % By Children: Out of the time spent in this activity (called with this stack’s hierarchy), how much of it was actually spent in child activities.

  • % By Self: The inverse of the % By Children. So, how much of the time spent is actually spent in this activity itself.

You will notice that there is also a colored background behind the last two columns. This bar shifts left when more time is spent in children and right when more time is spent in that activity itself. This bar provides you with hints on where you should investigate performance issues. Pay special attention to outliers. Usually the % By Self increases the higher you go in the stack. If you see an activity near the bottom of the stack with high self time, it could be interesting to investigate that activity directly instead of it’s children.

Children

The right side of the selection panel shows you a summary of children called by the topmost selected activity. In your example we’ve selected the activity called “Stack 2” and a large portion of it’s time is spent in “Stack 3”. The remainder of the time not listed as children is spent by the selected activity itself.