Udostępnij za pośrednictwem


Dodawanie znaków użytkownika do osi czasu profilowania (C#, C++)

Znaczniki użytkownika umożliwiają śledzenie zdarzeń niestandardowych względem narzędzi profilowania programu Visual Studio przez dodanie funkcji znacznika użytkownika do kodu. Znaczniki użytkownika są wyświetlane jako znaczniki wizualne na wykresach osi czasu. Można to zrobić, aby śledzić pojedyncze zdarzenie lub śledzić zakres. Można na przykład śledzić zakres zdarzeń "stop" i "start".

Zrzut ekranu przedstawiający znaczniki użytkownika profilowania.

Uwaga

Ta funkcja wymaga programu Visual Studio 2022 w wersji 17.11 (wersja zapoznawcza 3). Funkcja jest dostępna w profilerze wydajności, a nie podczas debugowania w Centrum diagnostyki.

Instalacja i konfiguracja

Obsługę funkcji można zainstalować przy użyciu pakietu NuGet lub przez dodanie poprawnych plików źródłowych.

  • Instalowanie przy użyciu pakietu NuGet (C#)

    Pobierz pakiet Microsoft.VisualStudio.DiagnosticsHub.UserMarks.

  • Zainstaluj, dodając pliki źródłowe (C#, C++)

    Po zainstalowaniu programu Visual Studio otwórz następujący folder: [ścieżka instalacji programu VS]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.

    W przypadku kodu w języku C# dodaj UserMarks.cs i UserMarksRange.cs do projektu.

    W przypadku natywnego kodu C++ dodaj element UserMarks.h do projektu.

Dodawanie znaków użytkownika (C#)

Dodaj następującą definicję preprocesora do konfiguracji kompilacji projektu: DIAGHUB_ENABLE_TRACE_SYSTEM.

Aby dodać definicję w programie Visual Studio:

  1. Kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań, a następnie wybierz polecenie Właściwości.

  2. Wybierz pozycję Kompiluj > ogólne > symbole kompilacji warunkowej.

  3. W niestandardowych polach symboli kompilacji debugowania i wydania dodaj DIAGHUB_ENABLE_TRACE_SYSTEM jako definicję preprocesora.

Dodaj użytkownika oznacza obiekt i emituj. Poniższy kod przedstawia przykład dodawania znaków użytkownika.

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
}

Dodawanie znaków użytkownika (C++)

Aby użyć interfejsu API oznaczania użytkownika natywnego, dodaj element UserMarks.h do projektu i dodaj następujący kod w aplikacji:

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

Wyświetl znaczniki użytkownika

  1. Po otwarciu projektu w programie Visual Studio otwórz profilera wydajności (Alt + F2), a następnie wybierz narzędzie i wybierz przycisk Uruchom .

  2. Upewnij się, że użytkownik oznaczy kod dodany do aplikacji.

    Znaczniki użytkownika są wyświetlane na linijce powyżej wykresu osi czasu i w tabeli ze szczegółowymi informacjami o znacznikach czasu, powiązanym procesie i wszelkich emitowanych komunikatach.

    Na osi czasu znacznik użytkownika jest wyświetlany jako odwrócony trójkąt.

  3. W okienku Podsumowanie wybierz pozycję Pokaż znaczniki użytkownika, aby wyświetlić szczegółowe informacje o znacznikach użytkownika.

    Zrzut ekranu przedstawiający oś czasu.

    Szczegóły są wyświetlane na karcie Znaczniki użytkownika.

    Zrzut ekranu przedstawiający znaczniki użytkownika.

  4. Aby wyświetlić szczegóły znacznika użytkownika na osi czasu, umieść kursor na znacznikach w linijce.

    Zrzut ekranu przedstawiający umieszczenie wskaźnika myszy na znaczniku użytkownika.

  5. Aby filtrować widok szczegółów, wybierz zakres czasu na wykresie osi czasu lub kliknij prawym przyciskiem myszy wiersz i wybierz pozycję Godziny rozpoczęcia i zakończenia, aby filtrować wykres osi czasu.

    Widok można również filtrować, ustawiając interwały dla zakresów lub wybierając wiele znaków użytkownika.

    Zrzut ekranu przedstawiający ustawienie interwału znacznika użytkownika.