다음을 통해 공유


사용자 표시를 프로파일링 타임라인에 추가(C#, C++)

사용자 표시를 사용하면 Visual Studio의 프로파일링 도구에 대한 사용자 지정 이벤트를 추적하기 위해 코드에 사용자 표시 함수를 추가할 수 있습니다. 사용자 표시는 시각적 표시로 타임라인 그래프에서 표시됩니다. 이 작업을 수행하여 범위를 추적하거나 단일 이벤트를 추적할 수 있습니다. 예를 들어 "start" 및 "stop" 이벤트 범위를 추적할 수 있습니다.

이 스크린샷은 프로파일링 사용자 표시를 보여 줍니다.

참고 항목

Visual Studio 2022 버전 17.11 미리 보기 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에서 프로젝트를 열고 성능 프로파일러(Alt + F2)를 연 다음 도구를 선택하고 시작 단추를 선택합니다.

  2. 앱에 추가된 사용자 표시 코드가 실행되는지 확인합니다.

    타임라인 그래프 위의 눈금자 및 타임스탬프, 관련 프로세스 및 내보낸 모든 메시지에 대한 세부 정보가 포함된 테이블에 사용자 표시가 표시됩니다.

    사용자 표시는 타임라인에서 역삼각형으로 나타납니다.

  3. 사용자 표시에 대한 세부 정보를 확인하려면 요약 창에서 사용자 표시 표시를 선택합니다.

    이 스크린샷은 타임라인을 보여 줍니다.

    사용자 표시 탭에 세부 정보가 나타납니다.

    이 스크린샷은 사용자 표시를 보여 줍니다.

  4. 사용자 표시 세부 정보를 타임라인에서 보려면 마우스로 눈금자의 표시를 가리킵니다.

    이 스크린샷은 마우스를 사용자 표시 위로 가져가는 것을 보여 줍니다.

  5. 세부 정보 보기를 필터링하려면 마우스 오른쪽 단추로 행을 클릭하고 시작 및 종료 시간을 선택하여 타임라인 그래프를 필터링하거나 타임라인 그래프에서 시간 범위를 선택합니다.

    여러 사용자 표시를 선택하거나 범위에 대한 간격을 설정하여 보기를 필터링할 수도 있습니다.

    이 스크린샷은 사용자 표시 간격 설정을 보여 줍니다.