Sdílet prostřednictvím


Přidání značek uživatelů na časovou osu profilace (C#, C++)

Značky uživatelů umožňují sledovat vlastní události v nástrojích pro profilaci sady Visual Studio přidáním funkcí značek uživatelů do kódu. Uživatelské značky se zobrazí jako vizuální značky v grafech časové osy. Můžete to udělat ke sledování jedné události nebo ke sledování rozsahu. Můžete například sledovat rozsah událostí "stop" a "start".

Snímek obrazovky znázorňující profilaci značek uživatelů

Poznámka:

Tato funkce vyžaduje Visual Studio 2022 verze 17.11 Preview 3. Tato funkce je k dispozici v profileru výkonu a ne při ladění v centru diagnostiky.

Instalace a nastavení

Podporu této funkce můžete nainstalovat buď pomocí balíčku NuGet, nebo přidáním správných zdrojových souborů.

  • Instalace pomocí balíčku NuGet (C#)

    Stáhněte balíček Microsoft.VisualStudio.DiagnosticsHub.UserMarks.

  • Instalace přidáním zdrojových souborů (C#, C++)

    Po instalaci sady Visual Studio otevřete následující složku: [Cesta instalace VS]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    Pro kód jazyka C# přidejte do projektu UserMarks.cs a UserMarksRange.cs .

    Pro nativní kód C++ přidejte do projektu UserMarks.h .

Přidání značek uživatelů (C#)

Do konfigurace sestavení projektu přidejte následující definici preprocesoru: DIAGHUB_ENABLE_TRACE_SYSTEM.

Přidání definice v sadě Visual Studio:

  1. Klikněte pravým tlačítkem myši na projekt v Průzkumník řešení a pak vyberte Vlastnosti.

  2. Vyberte Sestavit > obecné > symboly podmíněné kompilace.

  3. Do polí vlastních symbolů pro sestavení Debug a Release přidejte DIAGHUB_ENABLE_TRACE_SYSTEM jako definici preprocesoru.

Přidejte objekt značky uživatele a vygenerujte ho. Následující kód ukazuje příklad přidání značek uživatele.

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
}

Přidání značek uživatelů (C++)

Pokud chcete použít rozhraní API nativních značek uživatelů, přidejte do projektu UserMarks.h a do aplikace přidejte následující kód:

#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();

Zobrazit značky uživatelů

  1. Když máte projekt otevřený v sadě Visual Studio, otevřete Profiler výkonu (Alt + F2), vyberte nástroj a vyberte tlačítko Start .

  2. Ujistěte se, že se spustí kód značky uživatele, který jste přidali do aplikace.

    Uživatelské značky se zobrazují na pravítku nad grafem časové osy a v tabulce s podrobnostmi o časových razítkech, souvisejících procesech a všech zprávách, které jste vygenerují.

    Na časové ose se značka uživatele zobrazí jako invertovaný trojúhelník.

  3. V podokně Souhrn vyberte Zobrazit značky uživatelů, abyste zobrazili podrobnosti o značkách uživatele.

    Snímek obrazovky znázorňující časovou osu

    Podrobnosti se zobrazí na kartě Značky uživatelů.

    Snímek obrazovky zobrazující značky uživatelů

  4. Pokud chcete zobrazit podrobnosti o značce uživatele na časové ose, najeďte myší na značky na pravítku.

    Snímek obrazovky znázorňující najetí myší na značku uživatele

  5. Pokud chcete filtrovat zobrazení podrobností, vyberte časový rozsah v grafu časové osy nebo klikněte pravým tlačítkem myši na řádek a vyberte čas zahájení a ukončení a vyfiltrujte graf časové osy.

    Zobrazení můžete také filtrovat nastavením intervalů pro rozsahy nebo výběrem více uživatelských značek.

    Snímek obrazovky znázorňující nastavení intervalu značky uživatele