다음을 통해 공유


고급 설정 대화 상자(동시성 시각화 도우미)

동시성 시각화 도우미의 고급 설정 대화 상자를 사용하여 추적 수집 방법을 제어할 수 있습니다. 대화 상자에는 기호, 내 코드만, 버퍼링, 필터링, CLR 이벤트, 표식, 공급자 및 파일에 대한 탭이 있습니다.

기호

동시성 시각화 도우미는 Visual Studio 디버거와 동일한 기호 설정을 사용합니다. 동시성 시각화 도우미는 설정을 사용하여 성능 데이터와 연결된 호출 스택을 확인합니다. 추적을 처리할 때 동시성 시각화 도우미는 설정 페이지에 지정된 기호 서버에 액세스합니다. 네트워크를 통해 이 데이터에 액세스하면 추적 처리 속도가 느려집니다. 기호를 확인하는 데 필요한 시간을 줄이기 위해 기호를 로컬로 캐시할 수 있습니다. 기호가 다운로드된 경우 Visual Studio는 로컬 캐시에서 해당 기호를 로드합니다.

내 코드만

Visual Studio에서 기본적으로 Just My Code는 현재 솔루션과 연결된 exedll 파일의 집합입니다. 동시성 시각화 도우미는 내 코드만 기능을 사용하여 호출 스택을 필터링할 때 이 파일 집합을 평가합니다. 내 코드만 탭에서 동시성 시각화 도우미가 내 코드만을 위해 사용하는 위치에 .exe 및 .dll 파일이 포함된 디렉터리를 추가할 수 있습니다.

의 경로입니다. exe 및 . dll 파일은 추적이 수집될 때 추적 파일에 저장됩니다. 이 설정을 변경해도 이전에 수집된 추적에는 영향을 주지 않습니다.

버퍼링

동시성 시각화 도우미는 추적을 수집할 때 ETW(Windows용 이벤트 추적)를 사용합니다. ETW는 이벤트를 저장하는 다양한 버퍼를 사용합니다. 기본 ETW 버퍼 설정은 모든 경우에 최적이 아닐 수 있으며 경우에 따라 이벤트 손실과 같은 문제가 발생할 수 있습니다. 버퍼링 탭을 사용하여 ETW 버퍼 설정을 구성할 수 있습니다. 자세한 내용은 이벤트 추적EVENT_TRACE_PROPERTIES 구조를 참조하세요.

Filter

필터 탭에서 동시성 시각화 도우미가 수집하는 이벤트 집합을 선택할 수 있습니다. 이벤트의 하위 집합을 선택하면 보고서에 표시되는 데이터 형식이 제한되고 각 추적의 크기가 줄어들며 추적을 처리하는 데 필요한 시간이 줄어듭니다.

CLR 이벤트

CLR(공용 언어 런타임)에서 생성된 이벤트를 사용하면 동시성 시각화 도우미가 관리형 호출 스택을 확인할 수 있습니다. CLR 이벤트 수집을 비활성화하면 추적 크기가 줄어들지만, 일부 호출 스택은 해결되지 않을 수 있습니다. 따라서 일부 CPU 스레드 작업이 잘못 분류될 수 있습니다.

네이티브 프로세스에 대한 수집

기본적으로 CLR 이벤트는 일반적으로 네이티브 프로세스에 필요하지 않으므로 관리되는 프로세스가 프로파일러될 때만 수집됩니다. 일부 경우(예: 네이티브 프로세스가 CLR을 호스팅하는 경우) 네이티브 프로세스에 대한 CLR 이벤트를 수집해야 할 수 있습니다. 이 경우 네이티브 프로세스에 대한 수집 확인란을 선택합니다.

런다운 이벤트 사용 안 함

CLR은 런타임 및 런다운이라는 두 공급자에서 이벤트를 생성합니다. CLR 런타임 이벤트를 수집하지만 런다운 이벤트를 수집하지 않으려면 런다운 이벤트 사용 안 함 확인란을 선택합니다. 이렇게 하면 컬렉션에서 생성되는 추적 파일의 크기가 줄어들지만 일부 스택이 확인되지 않을 수 있습니다. 자세한 내용은 CLR ETW 공급자를 참조하세요.

샘플 이벤트

샘플 이벤트를 사용하여 스레드 실행과 연결된 호출 스택을 수집할 수 있습니다. 이러한 이벤트는 현재 프로세스에서 실행되는 스레드에 대해 밀리초당 약 한 번 수집됩니다. 샘플 이벤트 컬렉션을 사용하지 않도록 설정하면 수집된 추적의 크기가 줄어들지만 스레드 실행과 연결된 호출 스택은 볼 수 없습니다.

GPU 이벤트

GPU 이벤트는 DirectX에서 생성된 이벤트입니다. GPU 이벤트 컬렉션을 사용하지 않도록 설정하면 수집된 추적의 크기가 줄어들지만 사용률 보기에서 GPU 작업이나 스레드 뷰의 DirectX 엔진 작업을 볼 수 없습니다.

파일 I/O 이벤트

파일 I/O 이벤트는 현재 프로세스를 대신하여 디스크에 대한 액세스를 나타냅니다. 파일 I/O 이벤트를 사용하지 않도록 설정하면 추적 크기가 줄어들지만 스레드 뷰는 디스크 채널 또는 디스크 작업에 대한 정보를 보고하지 않습니다.

마커

표식 탭에서 동시성 시각화 도우미에 표식으로 표시되는 ETW 공급자 집합을 구성할 수 있습니다. 중요도 수준 및 ETW 범주에 따라 Marker 컬렉션을 필터링할 수도 있습니다. 동시성 시각화 도우미 SDK를 사용하고 사용자 고유의 표식 공급자를 사용하는 경우 스레드 뷰에 표시되도록 여기에 등록할 수 있습니다.

새 공급자 추가

코드에서 동시성 시각화 도우미 SDK 를 사용하거나 규칙을 따르는 EventSource ETW 이벤트를 생성하는 경우 이 대화 상자에 등록하여 동시성 시각화 도우미에서 이러한 이벤트를 볼 수 있습니다.

이름 필드에 공급자가 생성하는 이벤트 유형을 설명하는 이름을 입력합니다. GUID 필드에 이 공급자와 연결된 GUID를 입력합니다. GUID는 모든 ETW 공급자와 연결됩니다.

필요에 따라 범주 또는 중요도 수준에 따라 이 공급자에서 이벤트를 필터링할지 여부를 지정할 수 있습니다. 범주 필드를 사용하여 동시성 시각화 도우미 SDK 범주를 기준으로 필터링할 수 있습니다. 이렇게 하려면 범주 또는 범주 범위의 쉼표로 구분된 문자열을 입력합니다. 표시할 현재 공급자의 이벤트 범주를 지정합니다. 공급자를 EventSource 추가하는 경우 범주 필드를 사용하여 ETW 키워드로 필터링할 수 있습니다. 키워드는 비트 마스크이므로 쉼표로 구분된 정수 문자열을 사용하여 마스크에서 설정된 비트를 지정할 수 있습니다. 예를 들어 "1,2"는 첫 번째 비트와 두 번째 비트를 설정하고 10진수로 6으로 변환합니다.

중요도 수준 목록을 사용하여 중요도 또는 ETW 수준이 지정된 값보다 작은 이벤트를 필터링할 수 있습니다.

기존 공급자 구성

기존 공급자와 연결된 설정을 편집하려면 목록에서 선택한 다음 공급자 편집 단추를 선택합니다. 이름, GUID 및 필터링 설정을 변경할 수 있습니다.

동시성 시각화 도구 보고서에서 표식 데이터 필터링

특정 공급자의 데이터가 이후 추적에 표시되지 않도록 하려면 제거하려는 공급자 옆에 있는 확인란의 선택을 취소합니다.

Files

파일 탭에서 추적이 수집될 때마다 추적 파일이 저장되는 디렉터리를 지정할 수 있습니다. 동시성 시각화 도우미는 수집하는 각 추적에 대해 4개의 파일을 생성합니다.

  • ETL(커널 모드 이벤트 추적 로그) 파일(.kernel.etl*)

  • 사용자 모드 이벤트 추적 로그 파일(.user.etl*)

  • 동시성 시각화 도우미 데이터 파일(.CVData*)

  • 동시성 시각화 도구 추적 파일(.CVTrace*)

    두 ETL 파일은 원시 추적 데이터를 저장하고, 두 개의 동시성 시각화 도우미 파일은 처리된 데이터를 저장합니다. 원시 ETL 파일은 일반적으로 추적이 처리된 후에 사용되지 않습니다. 분석 후 ETL(이벤트 추적 로그) 파일 삭제 확인란을 선택하면 디스크에 저장된 추적 데이터의 양이 줄어듭니다.