Skip to content

Commit 67938fe

Browse files
committed
Update Flame Graph article
1 parent 291ed5b commit 67938fe

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

docs/profiling/dotnet-counters-tool.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ The .NET Counters tool allows you to visualize [dotnet counters](/dotnet/core/di
1717
> [!NOTE]
1818
> The .NET Counters tool requires Visual Studio 2019 version 16.7 or later and targets .NET Core 3.0+ and .NET 5+.
1919
20+
For additional information on learning to use the .NET Counters tool effectively, see [Case study: Isolate a performance issue](../profiling/isolate-performance-issue.md).
21+
2022
## Setup
2123

2224
1. Open the Performance Profiler (**Alt + F2** or **Debug -> Performance Profiler**) in Visual Studio.

docs/profiling/flame-graph.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ monikerRange: '>= vs-2022'
1313

1414
# Identify hot paths with a flame graph (C#, Visual Basic, C++, F#)
1515

16-
Visual Studio profiling tools for CPU utilization and instrumentation include the **Flame Graph** view. The **Flame Graph** helps you identify *hot paths* in your code by presenting a visualization of the call tree. The *hot path* is the call stack for the functions that are using the most CPU or the most time, and is often a good place to look for potential performance optimizations. The graph gives a visual overview of where time is being spent in your application and you can click on specific nodes to dig into them further.
16+
Visual Studio profiling tools for CPU utilization and instrumentation include the **Flame Graph** view. The **Flame Graph** helps you identify *hot paths* in your code by showing a visualization of the call tree. The *hot path* is the call stack for the functions that are using the most CPU or the most time, and is often a good place to look for potential performance optimizations. The graph gives a visual overview of where time is being spent in your application and you can click on specific nodes to dig into them further.
1717

18-
:::image type="content" source="./media/vs-2022/flame-graph-tooltips.png" alt-text="Screenshot showing Flame Graph with tooltips displayed." lightbox="media/vs-2022/flame-graph-tooltips.png":::
18+
:::image type="content" source="./media/vs-2022/flame-graph-tooltips.png" alt-text="Screenshot showing Flame Graph with context menu displayed." lightbox="media/vs-2022/flame-graph-tooltips.png":::
1919

2020
For a tutorial that shows how to improve performance using the flame graph, see [Case study: Beginner's guide to optimizing code](../profiling/optimize-code-using-profiling-tools.md). For information on the CPU profiler, see [Analyze performance by using CPU profiling](../profiling/cpu-usage.md).
2121

@@ -37,9 +37,13 @@ The Flame Graph view is in the details view of *.diagession* report.
3737

3838
:::image type="content" source="./media/vs-2022/flame-graph-overview.png" alt-text="Screenshot showing Flame Graph overview displayed." lightbox="media/vs-2022/flame-graph-overview.png":::
3939

40-
By default, the data shown in the Flame Graph represents the same data as shown in the **Call tree** view, which represents the data collection period. Specifically, for CPU Usage, it shows the **Total CPU** values. This value is inclusive, so it includes CPU utilization (that is, CPU computation time) used by calls to the function, and any other functions called by the function. In the same way, for Instrumentation, the graph shows the values equivalent to the **Total** column in the call tree view.
40+
The hot path is the code path using the most CPU or the most time as you look downward through the call tree.
4141

42-
However, if you select a node, the selected node becomes the new baseline and uses 100% of the flame graph width. This allows you to better visualize a complex call tree. Choose **Reset Zoom** to return to the default view.
42+
By default, the data shown in the Flame Graph represents the same data as shown in the **Call tree** view for the data collection period. Specifically, for CPU Usage, it shows the **Total CPU** values. This value is inclusive, so it includes CPU utilization (that is, CPU computation time) used by calls to the function, and any other functions called by the function. In the same way, for Instrumentation, the graph shows the values equivalent to the **Total** column in the call tree view.
43+
44+
However, if you select a node, the selected node becomes the new baseline and uses 100% of the flame graph width. This allows you to better visualize a complex call tree and view long names when they're truncated. Choose **Reset Zoom** to return to the default view.
45+
46+
You can also navigate to different views in the profiling report by selecting a node, and then choosing an option such as **View in call tree** from the context menu.
4347

4448
## Flip the Flame Graph
4549

@@ -65,5 +69,5 @@ In the Flame Graph view, you can navigate by clicking on a node with a mouse or
6569

6670
## Related content
6771

68-
- [Diagnose high latency with CPU Insights](../profiling/cpu-insights.md)
72+
- [Case study: Beginner's guide to optimizing code](../profiling/optimize-code-using-profiling-tools.md)
6973
- [Analyze CPU usage without debugging](../profiling/cpu-usage.md)

docs/profiling/instrumentation-overview.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,6 @@ To use this tool from the command-line, see the following article:
5858

5959
## Related content
6060

61-
- [First look at profiling tools](../profiling/profiling-feature-tour.md)
61+
- [Case study: Isolate a performance issue](../profiling/isolate-performance-issue.md)
6262
- [Improving Visual Studio performance with the new Instrumentation Tool](https://devblogs.microsoft.com/visualstudio/improving-visual-studio-performance-with-the-new-instrumentation-tool/).
63+
- [First look at profiling tools](../profiling/profiling-feature-tour.md)

0 commit comments

Comments
 (0)