共用方式為


將使用者標記新增至分析時間表 (C#、C++)

使用者標記可讓您將使用者標記函式新增至程式碼,以追蹤 Visual Studio 分析工具的自訂事件。 使用者標記會顯示為時間表圖形上的視覺標記。 您可以這麼做來追蹤單一事件,或追蹤一個範圍。 例如,您可以追蹤「停止」和「開始」事件範圍。

顯示分析使用者標記的螢幕擷取畫面。

注意

這項功能需要 Visual Studio 2022 17.11 版 Preview 3。 此功能可在效能分析工具中使用,但無法在診斷中樞中偵錯時使用。

安裝和設定

您可以使用 NuGet 套件或新增正確的來源檔案來安裝此功能的支援。

  • 使用 NuGet 套件 (C#) 安裝

    下載套件,Microsoft.VisualStudio.DiagnosticsHub.UserMarks

  • 透過新增來源檔案來安裝 (C#、C++)

    安裝 Visual Studio 之後,請開啟下列資料夾:[VS 安裝路徑]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub

    針對 C# 程式碼,請將 UserMarks.csUserMarksRange.cs 新增至您的專案。

    針對原生 C++ 程式碼,請將 UserMarks.h 新增至您的專案。

新增使用者標記 (C#)

將下列前置處理器定義新增至專案組建組態:DIAGHUB_ENABLE_TRACE_SYSTEM

若要在 Visual Studio 中新增定義:

  1. 在 [方案總管] 中以滑鼠右鍵按一下專案,然後選取 [屬性]

  2. 選取 [建置] [一般] [條件式編譯的符號]>>

  3. 在偵錯和發行組建的自訂符號欄位中,新增 DIAGHUB_ENABLE_TRACE_SYSTEM 作為前置處理器定義。

新增使用者標記物件並發出。 下列程式碼為新增使用者標記的範例。

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
}

新增使用者標記 (C++)

若要使用原生使用者標記 API,請將 UserMarks.h 新增至專案並在您的應用程式中新增下列程式碼:

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

檢視使用者標記

  1. 在 Visual Studio 中開啟 Bot 專案後,請開啟效能分析工具 (Alt + F2),然後選取工具並選取 [開始] 按鈕。

  2. 請確定您新增至應用程式的使用者標記程式碼正常執行。

    使用者標記會顯示在時間表圖形上方的尺規上以及表格中,其中包含時間戳記、相關程序以及您發出的任何訊息的詳細資料。

    在時間表中,使用者標記會顯示為倒三角形。

  3. 在 [摘要] 窗格中,選取 [顯示使用者標記] 以查看使用者標記的詳細資料。

    顯示時間表的螢幕擷取畫面。

    詳細資料會出現在 [使用者標記] 索引標籤中。

    顯示使用者標記的螢幕擷取畫面。

  4. 若要查看時間表中的使用者標記詳細資料,請將滑鼠停留在尺規中的標記上。

    顯示將滑鼠停留在使用者標記上的螢幕擷取畫面。

  5. 若要篩選詳細資料檢視表,請選取時間表圖形中的時間範圍,或以滑鼠右鍵按一下資料列,然後選取開始和結束時間以篩選時間表圖形。

    您也可以透過在範圍上設定間隔,或選取多個使用者標記來篩選檢視表。

    顯示設定使用者標記間隔的螢幕擷取畫面。