Skip to content

Commit 0b3a1ab

Browse files
Merge pull request #10577 from MicrosoftDocs/main638729319222538971sync_temp
For protected branch, push strategy should use PR and merge to target branch method to work around git push error
2 parents 8d6e64d + b6a5874 commit 0b3a1ab

File tree

5 files changed

+68
-8
lines changed

5 files changed

+68
-8
lines changed

docs/debugger/using-breakpoints.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Use the right type of breakpoints
2+
title: Use the right type of breakpoint
33
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.
44
ms.date: 08/13/2024
55
ms.topic: how-to
@@ -29,6 +29,8 @@ This article shows how to use different types of breakpoints in Visual Studio to
2929

3030
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.
3131

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+
3234
::: zone pivot="programming-language-dotnet,programming-language-dotnetf,programming-language-cpp,programming-language-all"
3335
## Scenarios
3436

docs/modeling/analyze-and-model-your-architecture.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ Learn more:
7474

7575
## <a name="VersionSupport"></a> Edition support for architecture and modeling tools
7676

77+
> [!NOTE]
78+
> Architecture tools are not supported on ARM64 Visual Studio.
79+
7780
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.
7881

7982
|**Feature**|**Enterprise edition**|**Professional edition**|**Community edition**|

docs/profiling/memory-usage-without-debugging2.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ author: mikejo5000
1212
ms.author: mikejo
1313
manager: mijacobs
1414
ms.subservice: debug-diagnostics
15+
zone_pivot_groups: programming-languages-set-two
1516
---
1617
# Analyze memory usage in release builds (C#, Visual Basic, C++, F#)
1718

1819
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.
1920

2021
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).
2122

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"
2226
## Memory Usage diagnostic sessions
2327

2428
**To start a Memory Usage diagnostic session:**
@@ -40,6 +44,7 @@ The Memory Usage tool can run [on release or debug builds](../profiling/running-
4044
::: moniker range="vs-2019"
4145
![Start a Memory Usage diagnostic session.](../profiling/media/memory-usage-start-diagnostics-session.png "Start a Memory Usage diagnostic session")
4246
::: moniker-end
47+
::: zone-end
4348

4449
### Monitor memory use
4550

@@ -121,6 +126,7 @@ For C++, the **Objects (Diff)** column is named **Allocations (Diff)**.
121126
|![Step 4](../profiling/media/process-guide-4.png "Process Guide-4")|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.|
122127
::: moniker-end
123128

129+
::: zone pivot="programming-language-dotnet,programming-language-dotnetf"
124130
## Managed types reports
125131

126132
[!INCLUDE [managed-types-report](../profiling/includes/managed-types-report.md)]
@@ -142,7 +148,9 @@ Many types in apps aren't required for app developers to investigate memory issu
142148
- <a name="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.
143149

144150
- <a name="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.
151+
::: zone-end
145152

153+
::: zone pivot="programming-language-cpp"
146154
## Native types reports
147155

148156
[!INCLUDE [native-types-report](../profiling/includes/native-types-report.md)]
@@ -152,6 +160,7 @@ Many types in apps aren't required for app developers to investigate memory issu
152160

153161
[!INCLUDE [memory-usage-insights](../profiling/includes/memory-usage-insights.md)]
154162
::: moniker-end
163+
::: zone-end
155164

156165
## Change (Diff) reports
157166

docs/profiling/profiling-feature-tour.md

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "First look at profiling tools"
33
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
55
ms.topic: conceptual
66
f1_keywords:
77
- vs.diagnosticshub.overview
@@ -13,13 +13,16 @@ author: mikejo5000
1313
ms.author: mikejo
1414
manager: mijacobs
1515
ms.subservice: debug-diagnostics
16+
zone_pivot_groups: programming-languages-set-two
1617
---
1718
# First look at profiling tools (C#, Visual Basic, C++, F#)
1819

1920
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.
2021

2122
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).
2223

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+
2326
## <a name="post_mortem"></a> Measure performance in release builds
2427

2528
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
3740

3841
Tools available in the Performance Profiler include:
3942

43+
::: zone pivot="programming-language-dotnet"
4044
- [CPU usage](../profiling/cpu-usage.md)
4145
- [.NET object allocation](../profiling/dotnet-alloc-tool.md)
4246
- [Memory usage](../profiling/memory-usage-without-debugging2.md)
@@ -46,6 +50,22 @@ Tools available in the Performance Profiler include:
4650
- [.NET Counters](../profiling/dotnet-counters-tool.md)
4751
- [Database tool](../profiling/analyze-database.md)
4852
- [GPU usage](../profiling/gpu-usage.md)
53+
::: zone-end
54+
55+
::: zone pivot="programming-language-dotnetf"
56+
- [CPU usage](../profiling/cpu-usage.md)
57+
- [Memory usage](../profiling/memory-usage-without-debugging2.md)
58+
- [Instrumentation](../profiling/instrumentation-overview.md)
59+
- [File I/O](../profiling/use-file-io.md)
60+
::: zone-end
61+
62+
::: zone pivot="programming-language-cpp"
63+
- [CPU usage](../profiling/cpu-usage.md)
64+
- [Memory usage](../profiling/memory-usage-without-debugging2.md)
65+
- [Instrumentation](../profiling/instrumentation-overview.md)
66+
- [File I/O](../profiling/use-file-io.md)
67+
- [GPU usage](../profiling/gpu-usage.md)
68+
::: zone-end
4969

5070
To see profiling tool support for different app types, see [Which tool should I use?](../profiling/choose-performance-tool.md).
5171

@@ -80,7 +100,9 @@ Tools available in the Diagnostic Tools window or during a debugging session inc
80100

81101
- [CPU usage](../profiling/beginners-guide-to-performance-profiling.md)
82102
- [Memory usage](../profiling/memory-usage.md)
103+
::: zone pivot="programming-language-dotnet"
83104
- [.NET Counters](../profiling/dotnet-counters-tool.md)
105+
::: zone-end
84106
- [PerfTips](../profiling/perftips.md)
85107
::: moniker-end
86108
::: moniker range="<=vs-2019"
@@ -211,6 +233,7 @@ PerfTips show the same events that also show up in the **Events** view of the Di
211233
> [!NOTE]
212234
> If you have Visual Studio Enterprise, you can also see [IntelliTrace events](../debugger/intellitrace.md) in this tab.
213235
236+
::: zone pivot="programming-language-dotnet"
214237
::: moniker range=">=vs-2022"
215238
## Analyze asynchronous code (.NET)
216239

@@ -219,6 +242,8 @@ The [.NET Async tool](../profiling/analyze-async.md) allows you to analyze the p
219242
The tool shows each async operation in a list view. You can see information such as the start time, end time, and total time for an async operation.
220243

221244
![.NET Async Tool Stopped](../profiling/media/vs-2022/prof-tour-async-tool.png ".NET Async Tool Stopped")
245+
246+
This tool is supported for For .NET Core and .NET 5+ apps.
222247
::: moniker-end
223248
::: moniker range="vs-2019"
224249
## Analyze asynchronous code (.NET)
@@ -228,24 +253,29 @@ The [.NET Async tool](../profiling/analyze-async.md) allows you to analyze the p
228253
The tool shows each async operation in a list view. You can see information such as the start time, end time, and total time for an async operation.
229254

230255
![.NET Async Tool Stopped](../profiling/media/async-tool-opened.png ".NET Async Tool Stopped")
256+
257+
This tool is supported for For .NET Core and .NET 5+ apps.
231258
::: moniker-end
232259

233-
## Analyze database performance (.NET Core)
260+
## Analyze database performance (.NET)
234261

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**).
236263

237264
The tool shows each query in a list view. You can see information such as the query start time and duration.
238265

239266
![Allocation](./media/db-gotosource.png "Allocation")
240267

241-
## Visualize .NET counters (.NET Core)
268+
## Visualize .NET counters (.NET)
242269

243270
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.
244271

245272
The tool shows live values for each counter in a list view.
246273

247274
:::image type="content" source="../profiling/media/dotnet-counters-tool-collecting.png" alt-text=".NET Counter tool collecting.":::
248275

276+
This tool is supported for For .NET Core and .NET 5+ apps.
277+
::: zone-end
278+
249279
## Examine application events
250280

251281
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
260290
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).
261291
::: moniker-end
262292

293+
::: zone pivot="programming-language-dotnet,programming-language-dotnetf"
263294
## Analyze resource consumption (XAML)
264295

265296
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
286317
::: moniker range="<=vs-2019"
287318
![View UI analysis events in the diagnostic tools](../profiling/media/prof-tour-ui-analysis.png "Diagnostic Tools View UI Analysis Events")
288319
::: moniker-end
320+
::: zone-end
289321

322+
::: zone pivot="programming-language-cpp"
290323
## Analyze GPU Usage (Direct3D)
291324

292325
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
301334
::: moniker-end
302335

303336
You can also use the graphs to determine whether there are CPU bound or GPU bound performance bottlenecks.
337+
::: zone-end
304338

305339
## Analyze performance (legacy tools)
306340

docs/zone-pivot-groups.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
groups:
33
- id: programming-languages-set-one
44
title: Programming languages
5-
prompt: Choose a supported programming language
5+
prompt: Choose a programming language or runtime
66
pivots:
77
- id: programming-language-dotnet
88
title: .NET
@@ -11,11 +11,23 @@ groups:
1111
- id: programming-language-cpp
1212
title: C++
1313
- id: programming-language-all
14-
title: All languages
14+
title: Other languages
1515
# Notice how the ids, titles, and prompts are
1616
# consistent and in order.
17-
# Note: Set two is not used currently, but is present as an example set two.
1817
- id: programming-languages-set-two
18+
title: Programming languages
19+
prompt: Choose a programming language or runtime
20+
pivots:
21+
- id: programming-language-dotnet
22+
title: .NET
23+
- id: programming-language-dotnetf
24+
title: .NET Framework
25+
- id: programming-language-cpp
26+
title: C++
27+
# Notice how the ids, titles, and prompts are
28+
# consistent and in order.
29+
# Note: This set is not used currently, but is present as an example.
30+
- id: programming-languages-set-three
1931
title: Programming languages
2032
prompt: Choose a supported programming language
2133
pivots:

0 commit comments

Comments
 (0)