Redigera

Dela via


Visualize dotnet counters from the Visual Studio profiler

The .NET Counters tool allows you to visualize dotnet counters over time right from within the Visual Studio profiler.

Note

The .NET Counters tool requires Visual Studio 2019 version 16.7 or later and targets .NET Core 3.0+ and .NET 5+.

For additional information on learning to use the .NET Counters tool effectively, see Case study: Isolate a performance issue.

Setup

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

  2. Select the .NET Counters check box.

    Counters tool selected.

  3. Click the Start button to run the tool.

For more information on how to optimize tool performance, see Optimizing Profiler settings.

Understand your data

While the tool is initially collecting data, you can see the live values of dotnet counters.

.NET Counter tool collecting.

You can also view graphs of the counters by selecting the checkbox next to the counter names. You can display the graphs of multiple counters at a time.

Once you are done exercising your app and collecting data, you can stop collection for an even more detailed report. To do this, press the Stop Collection button.

Once the report loads, you should see a finalized report similar to the one shown below.

.NET Counter tool report.

The report shows you the following values:

  • Min - The minimum value for that counter in the selected time range.
  • Max - The maximum value for that counter in the selected time range.
  • Average - The average value for that counter in the selected time range.

You can filter or add columns in the table by right clicking the column headings and selecting a heading.

.NET Counter tool columns.

You can also view graphs in the detailed report by selecting the checkboxes next to counters. The data in the tables represents the values of the entire duration of your collected trace by default. To filter down the data to a specific time range, click and drag on the graphs.

.NET Counters tool time filtering.

The table updates to relevant values for the time selected in the graphs. Use the Clear Selection button to reset the selected time range to the entire trace.

View .NET Meter counter data

Starting in Visual Studio 2022 version 17.8, .NET Counters tool supports integration with the .NET Meter API, adding support for instrument options such as Counter and ObservableCounter.

The Counter keeps track of a value changing over time, with the caller reporting updates using Counter.Add. In contrast, ObservableCounter is similar to Counter, but the caller takes care of keeping track of the total value. The .NET Counters tool reports the rate of change in the total.

For more information, see Creating Metrics.

View .NET Meter histogram data

Starting in Visual Studio 2022 version 17.12 Preview 2, .NET Counters tool supports .NET Meter Histogram integration.

The .NET Meter Histogram allows you to identify and analyze histogram data generated by .NET histogram instruments, recorded using CreateHistogram. When recording data using the histogram instrument, results are visualized, providing a clear representation of data distribution.

Live histogram data is shown with the rest of the counters, under the name of the Meter instance.

To open the histogram graph, select the instrument name for the Meter instance, as shown here.

.NET Counters meter histogram data.

In the preceding example, the tool shows data for the 50th, 90th, and 95th percentiles of the recorded measurements.