Compartir a través de


Agregar marcas de usuario a la cronología de generación de perfiles (C#, C++)

Las marcas de usuario permiten realizar un seguimiento de los eventos personalizados con las herramientas de creación de perfiles de Visual Studio agregando funciones de marca de usuario en el código. Las marcas de usuario aparecen como marcas visuales en los gráficos de cronología. Puede hacerlo para realizar un seguimiento de un único evento o realizar un seguimiento de un intervalo. Por ejemplo, puede realizar un seguimiento de un intervalo de eventos "stop" y "start".

Captura de pantalla que muestra las marcas de usuario de generación de perfiles.

Nota:

Esta característica requiere Visual Studio 2022, versión 17.11 Preview 3. La característica está disponible en el Generador de perfiles de rendimiento y no durante la depuración en el Centro de diagnósticos.

Instalación y configuración

Puede instalar la compatibilidad con la característica mediante el paquete NuGet o agregando los archivos de origen correctos.

  • Instalar mediante el paquete NuGet (C#)

    Descargue el paquete Microsoft.VisualStudio.DiagnosticsHub.UserMarks.

  • Instalar mediante la adición de archivos de origen (C#, C++)

    Después de instalar Visual Studio, abra la carpeta siguiente: [Ruta_instalación_VS]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    Para el código de C#, agregue UserMarks.cs y UserMarksRange.cs al proyecto.

    Para el código nativo de C++, agregue UserMarks.h al proyecto.

Agregar marcas de usuario (C#)

Agregue la siguiente definición del preprocesador a la configuración de compilación del proyecto: DIAGHUB_ENABLE_TRACE_SYSTEM.

Para agregar la definición en Visual Studio:

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y seleccione Propiedades.

  2. Seleccione Compilar > General > Símbolos de compilación condicional.

  3. En los campos de símbolos personalizados para las compilaciones Debug y Release, agregue DIAGHUB_ENABLE_TRACE_SYSTEM como definición del preprocesador.

Agregue las marcas de usuario object y emit. En el código siguiente se muestra un ejemplo de cómo agregar marcas de usuario.

using Microsoft.DiagnosticsHub;

// Create a user mark
var myUserMark = new UserMarks("MyMark");

// Emit the usermark
myUserMark.Emit("Event happened!");

// Emit statically
UserMarks.EmitMessage("Emitting just a message");

// Emitting a range
using (var myRange = new UserMarkRange("MyMethodRange"))
{
   // Your code here
}

Agregar marcas de usuario (C++)

Para usar la API de marcas de usuario nativas, agregue UserMarks.h al proyecto y agregue el código siguiente en la aplicación:

#define DIAGHUB_ENABLE_TRACE_SYSTEM
#include "UserMarks.h"
DIAGHUB_DECLARE_TRACE;

// Start the trace system
DIAGHUB_START_TRACE_SYSTEM();

// Initialize user marks
USERMARKS_INITIALIZE(L"User mark name");

// Initialize user mark range
USERMARKRANGE_INITIALIZE(L"Range name");

// Emit events
USERMARKS_EMIT(L"Message to emit with user mark");
USERMARKRANGE_START(L"Message to emit with range");
USERMARKRANGE_END();

// Stop the trace system
DIAGHUB_STOP_TRACE_SYSTEM();

Visualizar marcas de usuario

  1. Con el proyecto abierto en Visual Studio, abra el Generador de perfiles de rendimiento (Alt + F2), seleccione una herramienta y, a continuación, seleccione el botón Iniciar.

  2. Asegúrese de que se ejecute el código de marca de usuario que ha agregado a la aplicación.

    Las marcas de usuario se muestran en la regla encima del gráfico de la cronología y en una tabla con detalles sobre las marcas de tiempo, el proceso relacionado y los mensajes que ha emitido.

    En la cronología, la marca de usuario aparece como un triángulo invertido.

  3. En el panel Resumen , seleccione Mostrar marcas de usuario para ver detalles sobre las marcas de usuario.

    Captura de pantalla que muestra la cronología.

    Los detalles aparecen en la pestaña Marcas de usuario.

    Captura de pantalla que muestra las marcas de usuario.

  4. Para ver los detalles de la marca de usuario en la cronología, mantenga el puntero sobre las marcas de la regla.

    Captura de pantalla que muestra el puntero sobre una marca de usuario.

  5. Para filtrar la vista de detalles, seleccione un intervalo de tiempo en el gráfico de cronología o haga clic con el botón derecho en una fila y seleccione las horas de inicio y finalización para filtrar el gráfico de cronología.

    Para filtrar la vista, también puede establecer intervalos en rangos o seleccionar varias marcas de usuario.

    Captura de pantalla que muestra la configuración de un intervalo de marca de usuario.