You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/debugger/using-breakpoints.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Use the right type of breakpoints
2
+
title: Use the right type of breakpoint
3
3
description: Learn about the different types of breakpoints, one of the most important debugging techniques. The article covers breakpoint actions, tracepoints, conditions, and much more.
4
4
ms.date: 08/13/2024
5
5
ms.topic: how-to
@@ -29,6 +29,8 @@ This article shows how to use different types of breakpoints in Visual Studio to
29
29
30
30
If you're unfamiliar with using breakpoints in Visual Studio, see [Get started with breakpoints](get-started-with-breakpoints.md) before going through this article.
31
31
32
+
For the best experience with this documentation, choose your preferred development language or runtime from the list at the top of the article.
33
+
32
34
::: zone pivot="programming-language-dotnet,programming-language-dotnetf,programming-language-cpp,programming-language-all"
Copy file name to clipboardExpand all lines: docs/modeling/analyze-and-model-your-architecture.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,6 +74,9 @@ Learn more:
74
74
75
75
## <aname="VersionSupport"></a> Edition support for architecture and modeling tools
76
76
77
+
> [!NOTE]
78
+
> Architecture tools are not supported on ARM64 Visual Studio.
79
+
77
80
Visual Studio is available in several editions. Not all of these provide support for the architecture and modeling tools. The following table shows the availability of each tool.
The **Memory Usage** tool monitors your app's memory use. You can use the tool to study the real-time memory effects of scenarios you're actively developing in Visual Studio. You can take detailed snapshots of the app's memory states, and compare snapshots to find the root causes of memory issues. The Memory Usage tool is supported on .NET, ASP.NET, C++, or mixed mode (.NET and native) apps.
19
20
20
21
The Memory Usage tool can run [on release or debug builds](../profiling/running-profiling-tools-with-or-without-the-debugger.md). In this article, we show how to use the Memory Usage tool in the Visual Studio **Performance Profiler**, which is recommended for release builds. For information on choosing the best memory analysis tool for your needs, see [Choose a memory analysis tool](../profiling/analyze-memory-usage.md).
21
22
23
+
For the best experience with this documentation, choose your preferred development language or runtime from the list at the top of the article.
24
+
25
+
::: zone pivot="programming-language-dotnet,programming-language-dotnetf,programming-language-cpp"
22
26
## Memory Usage diagnostic sessions
23
27
24
28
**To start a Memory Usage diagnostic session:**
@@ -40,6 +44,7 @@ The Memory Usage tool can run [on release or debug builds](../profiling/running-
40
44
::: moniker range="vs-2019"
41
45

42
46
::: moniker-end
47
+
::: zone-end
43
48
44
49
### Monitor memory use
45
50
@@ -121,6 +126,7 @@ For C++, the **Objects (Diff)** column is named **Allocations (Diff)**.
121
126
||The difference between the total number of memory objects in this snapshot and the previous snapshot. Select this link to display a snapshot diff report. It’s sorted by the difference in the total count of instances of the types.|
122
127
::: moniker-end
123
128
129
+
::: zone pivot="programming-language-dotnet,programming-language-dotnetf"
@@ -142,7 +148,9 @@ Many types in apps aren't required for app developers to investigate memory issu
142
148
- <aname="BKMK_Just_My_Code"></a> Select **Show Just My Code** in the **Filter** dropdown to hide most instances that are generated by external code. External types belong to the operating system or framework components, or are generated by the compiler.
143
149
144
150
- <aname="BKMK_Collapse_Small_Objects"></a> Select **Collapse Small Objects** in the **Filter** dropdown to hide types whose **Size (Bytes)** is less than 0.5 percent of the total memory.
Copy file name to clipboardExpand all lines: docs/profiling/profiling-feature-tour.md
+38-4Lines changed: 38 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: "First look at profiling tools"
3
3
description: Review the different diagnostic tools available in Visual Studio for profiling your C#, Visual Basic, C++, and F# applications.
4
-
ms.date: 11/19/2024
4
+
ms.date: 1/17/2025
5
5
ms.topic: conceptual
6
6
f1_keywords:
7
7
- vs.diagnosticshub.overview
@@ -13,13 +13,16 @@ author: mikejo5000
13
13
ms.author: mikejo
14
14
manager: mijacobs
15
15
ms.subservice: debug-diagnostics
16
+
zone_pivot_groups: programming-languages-set-two
16
17
---
17
18
# First look at profiling tools (C#, Visual Basic, C++, F#)
18
19
19
20
Application performance measuring tools are essential for developers who want to optimize their code and improve application performance. Visual Studio offers a range of profiling and diagnostics tools that can help you diagnose memory and CPU usage and other application-level issues. With these tools, you can accumulate performance data while you run your application. A profiler can help you make informed decisions quickly by providing a visual depiction of execution times and CPU usage for your application. In this article, we give a quick look at the most common profiling tools.
20
21
21
22
For help with choosing the correct tool, or to see profiling tool support for different app types, see [Which tool should I use?](../profiling/choose-performance-tool.md) For a tutorial that shows a general approach to optimizing code using the profiling tools, see [Case study: Beginner's guide to optimizing code](../profiling/optimize-code-using-profiling-tools.md).
22
23
24
+
For the best experience with this documentation, choose your preferred development language or runtime from the list at the top of the article.
25
+
23
26
## <aname="post_mortem"></a> Measure performance in release builds
24
27
25
28
Tools in the Performance Profiler are intended to provide analysis for **Release** builds. In the Performance Profiler, you can collect diagnostic info while the app is running, and then examine the collected information after the app is stopped (a post-mortem analysis).
@@ -37,6 +40,7 @@ For more information on using the CPU Usage or Memory usage tool in the Performa
37
40
38
41
Tools available in the Performance Profiler include:
This tool is supported for For .NET Core and .NET 5+ apps.
231
258
::: moniker-end
232
259
233
-
## Analyze database performance (.NET Core)
260
+
## Analyze database performance (.NET)
234
261
235
-
For .NET Core apps that use ADO.NET or Entity Framework Core, the [Database tool](../profiling/analyze-database.md) allows you to record the database queries that your application makes during a diagnostic session. You can then analyze information about individual queries in order to find places where your app's performance can be improved. This tool is available in the Performance Profiler. Open the Performance Profiler by choosing **Debug** > **Performance Profiler** (or **Alt + F2**).
262
+
For .NET Core and .NET 5+ apps that use ADO.NET or Entity Framework Core, the [Database tool](../profiling/analyze-database.md) allows you to record the database queries that your application makes during a diagnostic session. You can then analyze information about individual queries in order to find places where your app's performance can be improved. This tool is available in the Performance Profiler. Open the Performance Profiler by choosing **Debug** > **Performance Profiler** (or **Alt + F2**).
236
263
237
264
The tool shows each query in a list view. You can see information such as the query start time and duration.
Starting in Visual Studio 2019 version 16.7, you can use the [.NET Counters tool](../profiling/dotnet-counters-tool.md) in Visual Studio to visualize performance counters. You can visualize counters created using [dotnet counters](/dotnet/core/diagnostics/dotnet-counters). dotnet counters supports many counters such as CPU usage and garbage collector heap size.
244
271
245
272
The tool shows live values for each counter in a list view.
This tool is supported for For .NET Core and .NET 5+ apps.
277
+
::: zone-end
278
+
249
279
## Examine application events
250
280
251
281
The generic [events viewer](../profiling/events-viewer.md) allows you to view the activity of your application through a list of events, such as module load, thread start, and system configurations, to help better diagnose how your application is performing right within the Visual Studio profiler. This tool is available in the Performance Profiler. Open the Performance Profiler by choosing **Debug** > **Performance Profiler** (or **Alt + F2**).
@@ -260,6 +290,7 @@ The tool shows each event in a list view. Columns provide information about each
260
290
You can programatically create custom events that appear as icons in the timeline graphs such as the CPU utilization and memory usage timeline graphs. For more information, see [Add user marks to timeline](../profiling/add-timeline-graph-user-marks.md).
261
291
::: moniker-end
262
292
293
+
::: zone pivot="programming-language-dotnet,programming-language-dotnetf"
263
294
## Analyze resource consumption (XAML)
264
295
265
296
In XAML apps, such as Windows desktop WPF apps and UWP apps, you can analyze resource consumption using the Application Timeline tool. For example, you can analyze the time spent by your application preparing UI frames (layout and render), servicing network and disk requests, and in scenarios like application startup, page load, and Window resize. To use the tool, choose **Application Timeline** in the Performance Profiler, and then choose **Start**. In your app, go through the scenario with a suspected resource consumption issue, and then choose **Stop collection** to generate the report.
@@ -286,7 +317,9 @@ In your UWP apps, you can enable **UI Analysis** in the **Diagnostic Tools** win
286
317
::: moniker range="<=vs-2019"
287
318

288
319
::: moniker-end
320
+
::: zone-end
289
321
322
+
::: zone pivot="programming-language-cpp"
290
323
## Analyze GPU Usage (Direct3D)
291
324
292
325
In Direct3D apps (Direct3D components must be in C++), you can examine activity on the GPU and analyze performance issues. For more information, see [GPU Usage](./gpu-usage.md). To use the tool, choose **GPU Usage** in the Performance Profiler, and then choose **Start**. In your app, go through the scenario that you're interested in profiling, and then choose **Stop collection** to generate a report.
@@ -301,6 +334,7 @@ When you select a time period in the graphs and choose **view details**, a detai
301
334
::: moniker-end
302
335
303
336
You can also use the graphs to determine whether there are CPU bound or GPU bound performance bottlenecks.
0 commit comments