Análisis de datos de BenchmarkDotNet en Visual Studio
Puede utilizar las herramientas de generación de perfiles para recopilar y ver datos de BenchmarkDotNet en Visual Studio.
Al agregar una herramienta de diagnóstico BenchmarkDotNet a las clases de punto de referencia como atributo, se genera un archivo .diagsession una vez que se ejecute el punto de referencia. A continuación, puede abrir el archivo .diagsession en Visual Studio y ver los datos de generación de perfiles de los puntos de referencia.
Se admiten las siguientes herramientas de diagnóstico:
- CPUUsageDiagnoser
- DatabaseDiagnoser
- DotNetCountersDiagnoser
- EventsDiagnoser
- FileIODiagnoser
Cada herramienta de diagnóstico genera datos de rendimiento relacionados con dicha herramienta. Por ejemplo, CPUUsageDiagnoser genera un archivo .diagsession con datos de CPU en él y DatabaseDiagnoser genera un archivo .diagsession con datos en las operaciones de base de datos. Las limitaciones corresponden a la herramienta de generación de perfiles asociada. Por ejemplo, la herramienta Base de datos del generador de perfiles funciona en ADO.NET o Entity Framework Core.
Requisitos previos
Visual Studio 2022 versión 17.9 o posterior
El proyecto de punto de referencia debe incluir los dos paquetes NuGet siguientes:
Recopilación de datos de Benchmark.NET
Creación de un proyecto de consola
Las funciones de punto de referencia se deben agregar a una aplicación de consola de .NET. Pueden ser funciones contenedoras que hacen referencia a otros tipos de proyecto.
Establezca la compilación en una compilación de versión en lugar de una compilación de depuración.
Atribuya el código para las herramientas de diagnóstico y los puntos de referencia e incluya código para ejecutar los puntos de referencia (
BenchmarkRunner.Run
).Agregue el nombre de la herramienta de diagnóstico como atributo a la clase que contenga los puntos de referencia para los que quiera generar datos.
Por ejemplo, puede utilizar el código siguiente para CPUUsageDiagnoser.
using System; using System.Security.Cryptography; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using Microsoft.VSDiagnostics; namespace MyBenchmarks { [CPUUsageDiagnoser] public class Md5VsSha256 { private const int N = 10000; private readonly byte[] data; private readonly SHA256 sha256 = SHA256.Create(); private readonly MD5 md5 = MD5.Create(); public Md5VsSha256() { data = new byte[N]; new Random(42).NextBytes(data); } [Benchmark] public byte[] Sha256() => sha256.ComputeHash(data); [Benchmark] public byte[] Md5() => md5.ComputeHash(data); } public class Program { public static void Main(string[] args) { var summary = BenchmarkRunner.Run(typeof(Program).Assembly); } } }
Ejecute la aplicación para generar el archivo .diagsession.
Compruebe la salida de la consola para obtener la ubicación del archivo. Por ejemplo:
// * Diagnostic Output - VSDiagnosticsDiagnoser * Collection result moved to 'BenchmarkDotNet_Md5VsSha256_20231218_123326.diagsession'. Session : {7f38bcc2-c692-4266-aa24-b12bc5325ea4} Stopped Exported diagsession file: *.diagsession
Ver datos de .NET de punto de referencia
En Visual Studio, seleccione Archivo > Abrir > Archivo; vaya a la ubicación del archivo .diagsession y, a continuación, seleccione y abra el archivo.
Seleccione la pestaña Benchmark (Punto de referencia) para ver los datos de BenchmarkDotNet.
Para más información sobre los resultados, consulte la documentación sobre BenchmarkDotNet.