사용자 표시를 프로파일링 타임라인에 추가(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.cs 및 UserMarksRange.cs를 프로젝트에 추가합니다.
네이티브 C++ 코드의 경우 UserMarks.h를 프로젝트에 추가합니다.
사용자 표시 추가(C#)
다음의 전처리기 정의를 프로젝트 빌드 구성에 추가합니다. DIAGHUB_ENABLE_TRACE_SYSTEM
.
Visual Studio에 정의를 추가하려면:
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다.
빌드 > 일반 > 조건부 컴파일 기호를 선택합니다.
디버그 및 릴리스 빌드에 대한 사용자 지정 기호 필드에서
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();
사용자 표시 보기
Visual Studio에서 프로젝트를 열고 성능 프로파일러(Alt + F2)를 연 다음 도구를 선택하고 시작 단추를 선택합니다.
앱에 추가된 사용자 표시 코드가 실행되는지 확인합니다.
타임라인 그래프 위의 눈금자 및 타임스탬프, 관련 프로세스 및 내보낸 모든 메시지에 대한 세부 정보가 포함된 테이블에 사용자 표시가 표시됩니다.
사용자 표시는 타임라인에서 역삼각형으로 나타납니다.
사용자 표시에 대한 세부 정보를 확인하려면 요약 창에서 사용자 표시 표시를 선택합니다.
사용자 표시 탭에 세부 정보가 나타납니다.
사용자 표시 세부 정보를 타임라인에서 보려면 마우스로 눈금자의 표시를 가리킵니다.
세부 정보 보기를 필터링하려면 마우스 오른쪽 단추로 행을 클릭하고 시작 및 종료 시간을 선택하여 타임라인 그래프를 필터링하거나 타임라인 그래프에서 시간 범위를 선택합니다.
여러 사용자 표시를 선택하거나 범위에 대한 간격을 설정하여 보기를 필터링할 수도 있습니다.