Skip to content

Commit 8ef4320

Browse files
committed
edits
1 parent 8755620 commit 8ef4320

File tree

7 files changed

+15
-17
lines changed

7 files changed

+15
-17
lines changed

docs/profiling/analyze-memory-usage.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Choose a memory analysis tool"
33
description: Learn about the tools you can use to find memory leaks and inefficient memory usage, tools such as the Memory Usage tool and the .NET Object Allocation tool.
4-
ms.date: "05/23/2024"
4+
ms.date: "01/06/2024"
55
ms.topic: "conceptual"
66
author: "mikejo5000"
77
ms.author: "mikejo"
@@ -10,21 +10,19 @@ ms.subservice: debug-diagnostics
1010
---
1111
# Choose a memory analysis tool in Visual Studio (C#, Visual Basic, C++, F#)
1212

13-
To find memory leaks and inefficient memory usage, you can use tools such as the debugger-integrated Memory Usage diagnostic tool or tools in the Performance Profiler such as the .NET Object Allocation tool and the post-mortem Memory Usage tool.
13+
To find memory leaks and inefficient memory usage, you can use tools such as the debugger-integrated Memory Usage diagnostic tool or tools in the Performance Profiler such as the .NET Object Allocation tool and the post-mortem Memory Usage tool. Performance Profiler tools are intended primarily for release builds. For more information, see [Run profiling tools on release or debug builds](../profiling/running-profiling-tools-with-or-without-the-debugger.md).
1414

15-
The Memory Usage tool lets you take one or more *snapshots* of the managed and native memory heap. You can collect snapshots of .NET, ASP.NET, C++, or mixed mode (.NET and native) apps. The **Memory Usage** tool can run on an open Visual Studio project, on an installed Microsoft Store app, or attached to a running app or process. You can run the **Memory Usage** tool with or without debugging. For more information, see [Run profiling tools on release or debug builds](../profiling/running-profiling-tools-with-or-without-the-debugger.md). In the debugger, you can turn memory profiling on and off, and see a per-object breakdown of memory usage. You can view memory usage results when execution is paused, for example at a breakpoint.
15+
The Memory Usage tool lets you take one or more *snapshots* of the managed and native memory heap. You can collect snapshots of .NET, ASP.NET, C++, or mixed mode (.NET and native) apps. The **Memory Usage** tool can run on an open Visual Studio project, on an installed Microsoft Store app, or attached to a running app or process.
1616

1717
.NET developers may choose between either the .NET Object Allocation tool or the Memory usage tool.
1818

1919
- The [.NET Object Allocation tool](../profiling/dotnet-alloc-tool.md) helps you identify allocation patterns and anomalies in your .NET code, and helps identify common issues with garbage collection. This tool runs only as a post-mortem tool. You can run this tool on local or remote machines.
20-
- The [Memory Usage tool](../profiling/memory-usage-without-debugging2.md) is helpful in identifying memory leaks, which are not typically common in .NET apps. If you need to use debugger features while checking memory, such as stepping through code, the [debugger-integrated Memory usage](../profiling/memory-usage.md) tool is recommended.
20+
- The [Memory Usage tool](../profiling/memory-usage-without-debugging2.md) is helpful in identifying memory leaks, which aren't typically common in .NET apps. If you need to use debugger features while checking memory, such as stepping through code, the [debugger-integrated Memory usage](../profiling/memory-usage.md) tool is recommended. In the debugger, you can turn memory profiling on and off, and see a per-object breakdown of memory usage. You can view memory usage results when execution is paused, for example at a breakpoint.
2121

22-
C++ developers can use either the debugger-integrated or non-debugger Memory Usage tool.
22+
C++ developers can use Memory Usage tool on debug or release builds:
2323

24-
- [Analyze memory usage with the debugger](../profiling/memory-usage.md)
25-
- [Analyze memory usage without the debugger](../profiling/memory-usage-without-debugging2.md)
26-
27-
You can use the profiling tools without the debugger with Windows 7 and later. Windows 8 and later is required to run profiling tools with the debugger (**Diagnostic Tools** window).
24+
- [Measure memory usage on debug builds](../profiling/memory-usage.md)
25+
- [Analyze memory usage on release builds](../profiling/memory-usage-without-debugging2.md)
2826

2927
## Blogs and videos
3028

docs/profiling/cpu-usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The CPU Usage tool can help you:
2727

2828
The **CPU Usage** tool is helpful for both local trace sessions and production. You can run the CPU Usage tool by using the keyboard shortcut, **Alt+F2**, and then choosing **CPU Usage**, or by opening an already collected trace using a tool like [dotnet-trace](/dotnet/core/diagnostics/dotnet-trace) or [dotnet-monitor](/dotnet/core/diagnostics/dotnet-monitor). (For .NET production code, this is most likely how you would collect traces.)
2929

30-
You can run the CPU Usage tool on an open Visual Studio project, on an installed Microsoft Store app, or attached to a running app or process. You can run the CPU Usage tool with or without debugging. For more information, see [Run profiling tools on release or debug builds](../profiling/running-profiling-tools-with-or-without-the-debugger.md).
30+
You can run the CPU Usage tool on an open Visual Studio project, on an installed Microsoft Store app, or attached to a running app or process. You can run the CPU Usage tool on debug or release builds. For more information, see [Run profiling tools on release or debug builds](../profiling/running-profiling-tools-with-or-without-the-debugger.md).
3131

3232
The following instructions show how to use the CPU Usage tool without the debugger, using the Visual Studio Performance Profiler. The examples use a Release build on a local machine. Release builds provide the best view of actual app performance. For a tutorial that shows how to improve performance using the CPU Usage tool, see [Case study: Beginner's guide to optimizing code](../profiling/optimize-code-using-profiling-tools.md).
3333

docs/profiling/flame-graph.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,4 @@ In the Flame Graph view, you can navigate by clicking on a node with a mouse or
7878
## Related content
7979

8080
- [Case study: Beginner's guide to optimizing code](../profiling/optimize-code-using-profiling-tools.md)
81-
- [Analyze CPU usage without debugging](../profiling/cpu-usage.md)
81+
- [Analyze CPU usage on release builds](../profiling/cpu-usage.md)

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Analyze memory usage in the Performance Profiler
3-
description: Learn how to use the Memory Usage tool without the debugger in the Visual Studio Performance Profiler to monitor your app's memory use.
3+
description: Learn how to use the Memory Usage tool in release builds in the Visual Studio Performance Profiler to monitor your app's memory use.
44
ms.date: 02/06/2024
55
ms.topic: how-to
66
dev_langs:
@@ -13,11 +13,11 @@ ms.author: mikejo
1313
manager: mijacobs
1414
ms.subservice: debug-diagnostics
1515
---
16-
# Analyze memory usage without debugging in the Performance Profiler (C#, Visual Basic, C++, F#)
16+
# Analyze memory usage in release builds (C#, Visual Basic, C++, F#)
1717

1818
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.
1919

20-
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 without the debugger 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).
20+
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).
2121

2222
## Memory Usage diagnostic sessions
2323

docs/profiling/memory-usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Find memory leaks and inefficient memory while you're debugging with the debugge
1515
Although you can collect memory snapshots at any time in the **Memory Usage** tool, you can use the Visual Studio debugger to control how your application executes while investigating performance issues. Setting breakpoints, stepping, Break All, and other debugger actions can help you focus your performance investigations on the code paths that are most relevant. Performing those actions while your app is running can eliminate the noise from the code that doesn't interest you and can significantly reduce the amount of time it takes you to diagnose an issue.
1616

1717
> [!Important]
18-
> The debugger-integrated Diagnostics Tools are supported for .NET development in Visual Studio, including ASP.NET, ASP.NET Core, native/C++ development, and mixed mode (.NET and native) apps. Windows 8 and later is required to run profiling tools with the debugger (**Diagnostic Tools** window).
18+
> The debugger-integrated Diagnostics Tools are supported for .NET development in Visual Studio, including ASP.NET, ASP.NET Core, native/C++ development, and mixed mode (.NET and native) apps.
1919
2020
In this tutorial, you will:
2121

docs/profiling/running-profiling-tools-with-or-without-the-debugger.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The Performance Profiler and the debugger-integrated Diagnostic Tools provide di
1616

1717
Release build performance numbers in the Performance Profiler are the most precise and accurate. These tools give you results closer to the end-user experience. Typically, this is the preferred method for using the profiling tools. However, there may be scenarios where using the debugger in a debug build may help to narrow down the performance problem, especially if you want to use debugger features such as breakpoints and code stepping.
1818

19-
To help you decide between using the profiling tools in release or debug builds, you might also consider the following:
19+
To help you decide between using the profiling tools in release or debug builds, consider the following:
2020

2121
- Release builds provide optimizations like inlining function calls and constants, pruning unused code paths, and storing variables in ways that can't be used by the debugger. Performance numbers in debug builds are less accurate, because debug builds lack these optimizations.
2222
- In addition to differences between release builds and debug builds, the debugger itself changes performance times, as it does necessary debugger operations like intercepting exception and module load events.

docs/profiling/toc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
href: perf-insights-excessive-induced-gcs.md
8585
- name: High LOH fragmentation
8686
href: perf-insights-high-loh-fragmentation.md
87-
- name: Analyze memory usage without the debugger
87+
- name: Analyze memory usage on release builds
8888
href: memory-usage-without-debugging2.md
8989
- name: Custom native ETW heap events
9090
href: custom-native-etw-heap-events.md

0 commit comments

Comments
 (0)