동시성 시각화 도우미의 스레드 보기
스레드 보기는 동시성 시각화 도우미에서 가장 자세하며 다양한 기능을 제공하는 보기입니다. 스레드 보기에서 실행 세그먼트 중 코드를 실행하는 스레드를 식별하고 동기화, I/O 또는 기타 이유로 인해 스레드가 실행 중인지 또는 차단되는지 분석할 수 있습니다. 스레드 보기 보고서도 호출 스택 트리 실행 및 스레드 차단 해제를 프로파일링합니다.
스레드가 실행되는 동안 동시성 시각화 도우미는 샘플을 수집합니다. 스레드가 실행을 중지하면 시각화 도우미는 스레드에 대한 모든 운영 체제 컨텍스트 전환 이벤트를 검사합니다. 컨텍스트 전환은 다음과 같은 이유로 발생할 수 있습니다.
- 스레드가 동기화 기본 형식에서 차단되는 경우
- 스레드의 퀀텀이 만료된 경우
- 스레드가 차단 I/O 요청을 하는 경우
동시성 시각화 도우미는 스레드 및 컨텍스트 전환 이벤트를 분류하고 잘 알려진 차단 API에 대한 스레드의 호출 스택을 검사합니다. 스레드 보기의 왼쪽 아래에 있는 활성 범례에 스레드 범주가 표시됩니다. 대부분의 경우에는 컨텍스트 전환 이벤트에 해당하는 호출 스택을 검사하면 차단 이벤트의 근본 원인을 파악할 수 있습니다.
일치하는 호출 스택이 없는 경우 동시성 시각화 도우미는 Windows에서 제공하는 대기 원인을 사용합니다. 그러나 Windows 범주는 구현 정보를 기반으로 할 수 있으며 사용자의 의도를 반영하지 않을 수도 있습니다. 예를 들어 Windows에서는 기본 슬림 판독기/기록기 잠금에 대한 차단의 대기 원인을 동기화가 아닌 I/O로 보고합니다.
스레드 보기에는 스레드 간의 종속성도 표시됩니다. 예를 들어 동기화 개체에서 차단된 스레드를 식별하면 해당 스레드를 차단 해제한 스레드를 찾을 수 있습니다. 차단 해제 스레드가 다른 하나를 차단 해제한 지점에서 호출 스택을 검사할 수 있습니다.
스레드 보기를 사용하여 다음을 수행할 수 있습니다.
- 특정 실행 단계 중에 앱의 UI(사용자 인터페이스)가 응답하지 않는 원인을 파악합니다.
- 동기화, I/O, 페이지 폴트 및 기타 이벤트에서 차단에 소요된 시간을 확인합니다.
- 시스템에서 실행되고 있는 다른 프로세스의 간섭 정도를 검색합니다.
- 병렬 실행에 대한 부하 분산 문제를 파악합니다.
- 차선의 확장성 또는 존재하지 않는 확장성에 대한 이유를 찾아봅니다. 예를 들어, 더 많은 논리 코어를 사용 가능할 때 병렬 앱의 성능이 향상되지 않은 이유는 무엇인가요?
- 병렬화에 도움이 되는 앱의 동시성 수준을 이해합니다.
- 작업자 스레드 및 중요한 실행 경로 간의 종속성을 식별합니다.
스레드 보기 사용
동시성 시각화 도우미를 시작하려면 분석>동시성 시각화 도우미를 선택한 다음, 새 프로세스 시작과 같은 옵션을 선택합니다.
동시성 시각화 도우미는 앱을 시작하고 컬렉션 중지를 선택할 때까지 추적을 수집합니다. 그런 다음, 시각화 도우미는 추적을 분석하고 추적 보고서 페이지에 결과를 표시합니다.
보고서 왼쪽 위에 있는 스레드 탭을 선택하여 스레드 보기를 엽니다.
성능 분석을 시작할 시간 간격 및 스레드를 선택합니다.
타임라인 분석
스레드 보기의 위쪽 부분은 타임라인입니다. 타임라인에는 프로세스의 모든 스레드와 호스트 컴퓨터의 모든 실제 디스크 디바이스의 작업이 표시됩니다. 또한 GPU 작업 및 표식 이벤트도 표시됩니다.
타임라인에서 x축은 시간이고 y축은 여러 채널입니다.
- 시스템의 각 디스크 드라이브에 해당하는 2개 I/O 채널(쓰기용 채널과 읽기용 채널 1개씩)
- 프로세스의 각 스레드에 해당하는 채널
- 추적에 표식 이벤트가 있는 경우 표식 채널. 표식 채널은 처음에는 해당 이벤트를 생성한 스레드 채널 아래에 표시됩니다.
- GPU 채널
초기에는 스레드가 만들어진 순서로 정렬되므로 주 앱 스레드가 맨 먼저 표시됩니다. 실행과 같은 다른 기준에 따라 스레드를 선택하려면 정렬 기준 드롭다운에서 다른 옵션을 선택합니다.
타임라인 색은 지정된 시간에 스레드 상태를 나타냅니다. 녹색 세그먼트는 실행 중이고, 빨간색 세그먼트는 동기화를 위해 차단되고, 노란색 세그먼트는 선점되며, 자주색 세그먼트는 디바이스 I/O에 사용되었던 스레드를 나타냅니다.
확대하여 자세한 정보를 보거나 축소하여 더 긴 시간 간격의 정보를 볼 수 있습니다. 그래프에서 세그먼트와 점을 선택하여 범주, 시작 시간, 지연 및 호출 스택 상태에 대한 정보를 가져옵니다.
타임라인을 사용하여 병렬 루프 또는 동시 작업과 관련된 스레드 간의 작업 균형을 검사합니다. 한 스레드를 완료하는 데 다른 스레드보다 시간이 오래 걸리면 작업이 불균형하게 분산되었을 수 있습니다. 스레드 간에 작업을 보다 균일하게 분산시키면 프로그램의 성능을 개선할 수 있습니다.
특정 시점에 하나의 스레드만 실행 중이면 앱이 시스템의 동시성을 완전하게 활용하고 있지 않은 것일 수 있습니다. 타임라인 그래프를 사용하여 스레드 간의 종속성과 차단하는 스레드 및 차단되는 스레드 간의 임시 관계를 조사할 수 있습니다. 스레드를 다시 정렬하려면 스레드를 선택한 다음, 도구 모음에서 위쪽 또는 아래쪽 아이콘을 선택합니다.
해당 통계가 관련성이 없고 보고서가 막힐 수 있기 때문에 작업을 수행하지 않거나 완전히 차단된 스레드를 숨길 수 있습니다. 해당 이름을 선택한 다음, 선택한 스레드 숨기기 또는 도구 모음에서 선택한 스레드를 제외한 모든 스레드 숨기기 아이콘을 선택하여 스레드를 숨깁니다. 숨길 스레드를 식별하려면 왼쪽 하단의 스레드 단위 요약 링크를 선택합니다. 스레드 단위 요약 그래프에서 활동이 없는 스레드를 숨길 수 있습니다.
스레드 실행 정보
실행 세그먼트에 대한 자세한 정보를 가져오려면 타임라인의 녹색 세그먼트에서 한 지점을 선택합니다. 동시성 시각화 도우미는 선택한 지점 위에 검은색 캐럿을 표시하고 아래쪽 창의 현재 탭에 해당 호출 스택을 표시합니다. 실행 세그먼트에서 여러 지점을 선택할 수 있습니다.
참고 항목
세그먼트의 지속 기간이 1밀리초 미만인 경우 동시성 시각화 도우미가 실행 세그먼트에서 선택한 지점을 확인하지 못할 수도 있습니다.
현재 선택한 시간 범위에서 숨겨지지 않은 모든 스레드에 대한 실행 프로필을 가져오려면 왼쪽 하단의 범례에서 실행을 선택합니다.
스레드 차단 정보
스레드의 특정 영역에 대한 정보를 가져오려면 타임라인에서 해당 영역을 마우스로 가리키면 도구 설명이 표시됩니다. 도구 설명에는 범주, 시작 시간 및 지연과 같은 정보가 있습니다. 아래쪽 창의 현재 탭에 해당 시점의 호출 스택을 표시할 영역을 선택합니다. 이 창에는 범주, 지연, 차단 API(있는 경우), 차단 해제 스레드(있는 경우)도 표시됩니다. 호출 스택을 검사하여 스레드 차단 이벤트의 기본 원인을 확인할 수 있습니다.
실행 경로에는 여러 개의 차단 이벤트가 있을 수 있습니다. 범주를 차단하여 다음을 검토하고 문제 영역을 더 빠르게 찾으려면 왼쪽의 범례에서 차단 범주를 선택합니다.
스레드 간 종속성
동시성 시각화 도우미는 스레드 간 종속성을 표시하므로 차단된 스레드가 수행하려던 작업과 해당 스레드가 작업을 수행할 수 있도록 한 다른 스레드를 확인할 수 있습니다.
다른 스레드를 차단 해제한 스레드를 확인하려면 타임라인에서 차단 세그먼트를 선택합니다. Concurrency 시각화는 차단 해제 스레드를 확인할 수 있으면 차단 해제 스레드와 차단 스레드 뒤에 오는 실행 세그먼트 사이에 선을 그립니다. 아래쪽 창에서 차단 해제 스택 탭을 선택하여 관련 호출 스택을 확인합니다.
프로필 보고서
타임라인 그래프 아래에는 프로필 보고서, 현재 및 차단 해제 스택 보고서 탭을 포함한 창이 있습니다. 타임라인 및 스레드 선택을 변경하면 보고서가 자동으로 업데이트됩니다. 대규모 추적의 경우 업데이트를 계산하는 동안 보고서 창을 일시적으로 사용하지 못할 수도 있습니다.
프로필 보고서 탭
프로필 보고서에는 두 개의 필터가 있습니다.
- 시간이 거의 소요되지 않은 호출 트리 항목을 필터링하려면 노이즈 감소율 필드에 0에서 99% 사이의 필터 값을 입력합니다. 기본값은 2%입니다.
- 코드에 대한 호출 트리만 보려면 내 코드만 확인란을 선택합니다. 모든 호출 트리를 보려면 확인란 선택을 취소합니다.
프로필 보고서 탭에는 범례의 범주 및 링크에 대한 보고서가 표시됩니다. 보고서를 표시하려면 왼쪽의 항목 중 하나를 선택합니다.
Execution - 실행 보고서에는 애플리케이션의 실행에 소요된 시간을 분석한 정보가 표시됩니다.
실행 시간이 소요된 코드 줄을 찾으려면 호출 트리를 확장하고 호출 트리 항목의 바로 가기 메뉴에서 소스 보기 또는 호출 사이트 보기를 선택합니다. 소스 보기를 선택하면 실행된 코드 줄을 찾습니다. 호출 사이트 보기는 실행된 줄을 호출한 코드 줄을 찾습니다. 호출 사이트 줄이 하나뿐이면 해당 코드가 강조 표시됩니다. 여러 호출 사이트가 있는 경우 대화 상자에서 원하는 호출 사이트를 선택한 다음, 소스로 이동을 선택합니다. 이러한 기능은 인스턴스가 가장 많거나, 시간이 가장 길거나, 인스턴스도 가장 많고 시간도 가장 긴 호출 사이트를 찾는 데 매우 유용한 경우가 많습니다. 자세한 내용은 실행 프로필 보고서를 참조하세요.
Synchronization - 동기화 보고서에는 동기화 블록을 처리하는 호출과 각 호출 스택의 총 차단 시간이 표시됩니다. 자세한 내용은 동기화 시간을 참조하세요.
I/O - I/O 보고서에는 I/O 블록을 처리하는 호출과 각 호출 스택의 총 차단 시간이 표시됩니다. 자세한 내용은 I/O 시간(스레드 보기)을 참조하세요.
Sleep - Sleep 보고서에는 Sleep 블록을 처리하는 호출과 각 호출 스택의 총 차단 시간이 표시됩니다. 자세한 내용은 절전 모드 시간을 참조하세요.
Memory Management - 메모리 관리 보고서에는 메모리 관리 블록이 발생한 호출 및 각 호출 스택의 총 차단 시간이 표시됩니다. 이 정보를 사용하여 과도한 페이징 또는 가비지 수집 문제가 발생하는 영역을 식별합니다. 자세한 내용은 메모리 관리 시간을 참조하세요.
Preemption - 선점 보고서에는 시스템의 프로세스가 현재 프로세스를 선점한 위치와 현재 프로세스의 스레드를 대체하는 개별 스레드가 표시됩니다. 이 정보를 사용하여 가장 많은 선점을 한 프로세스와 스레드를 확인할 수 있습니다. 자세한 내용은 선점 시간을 참조하세요.
UI Processing - UI 처리 보고서에는 UI 처리 블록을 처리하는 호출과 각 호출 스택의 총 차단 시간이 표시됩니다. 자세한 내용은 UI 처리 시간을 참조하세요.
Per Thread Summary - 현재 선택한 시간 간격에 대한 스레드 상태를 보여주는 그래프를 표시하려면 스레드 단위 요약을 선택합니다. 색으로 구분된 열은 각 스레드가 실행, 차단, I/O 및 기타 상태에서 소비한 총 시간을 표시합니다. 스레드는 아래쪽에 레이블이 지정됩니다. 타임라인 그래프에서 확대/축소 수준을 조정하면 이 그래프는 자동으로 업데이트됩니다.
특정 확대/축소 수준에서 일부 스레드가 그래프에 표시되지 않을 수 있습니다. 이 경우, 오른쪽에 줄임표 (...)가 나타납니다. 확인하려는 스레드가 표시되지 않으면 다른 스레드를 숨길 수 있습니다. 자세한 내용은 스레드 단위 요약 보고서를 참조하세요.
Disk Operations - 디스크 작업을 선택하여 현재 프로세스의 디스크 I/O와 관련된 프로세스 및 스레드, 이러한 스레드와 프로세스가 사용한 파일(예: 로드된 DLL), 읽은 바이트 수 및 기타 정보를 표시합니다. 이 보고서를 사용하여 특히 프로세스가 I/O에 바인딩된 것으로 보이는 경우에 실행 중 파일에 액세스하는 데 걸린 시간을 평가할 수 있습니다. 자세한 내용은 디스크 작업 보고서를 참조하세요.
현재 탭
이 탭에는 시간 표시 막대 그래프의 스레드 세그먼트에서 선택한 점에 대한 호출 스택이 표시됩니다. 호출 스택은 앱과 관련된 작업만 표시하도록 잘립니다.
차단 해제 스택 탭
이 탭에는 선택한 스레드를 차단 해제한 스레드와 차단 해제 호출 스택이 표시됩니다.
채널(스레드 뷰)
동시성 시각화 도우미는 스레드 채널, 디스크 채널, 표식 채널 및 GPU 채널의 4가지 채널을 보여줍니다.
스레드 채널
스레드 채널은 하나의 스레드에 대해서만 스레드 상태를 색으로 보여 줍니다. 채널 이름에서 일시 중지하면 지정된 스레드의 시작 함수가 표시됩니다. 동시성 시각화 도우미는 여러 종류의 스레드를 검색합니다. 가장 일반적인 종류가 다음 표에 나와 있습니다.
스레드 | 설명 |
---|---|
주 스레드 | 응용 프로그램을 시작한 스레드입니다. |
작업자 스레드 | 애플리케이션의 주 스레드에 의해 생성된 스레드입니다. |
CLR 작업자 스레드 | CLR(공용 언어 런타임)에 의해 생성된 작업자 스레드입니다. |
디버거 도우미 | Visual Studio 디버거에 의해 생성된 작업자 스레드입니다. |
ConcRT 스레드 | Microsoft 동시성 런타임에 의해 생성된 스레드입니다. |
GDI 스레드 | GDIPlus에 의해 생성된 스레드입니다. |
OLE/RPC 스레드 | RPC 작업자 스레드로 생성된 스레드입니다. |
RPC 스레드 | RPC 스레드로 생성된 스레드입니다. |
Winsock 스레드 | Winsock 스레드로 생성된 스레드입니다. |
스레드 풀 | CLR 스레드 풀에 의해 생성된 스레드입니다. |
디스크 채널
디스크 채널은 컴퓨터에 있는 실제 드라이브에 해당합니다. 시스템의 각 실제 드라이브에 대해 읽기 및 쓰기 작업용 별도 채널이 존재하므로 각 드라이브에는 두 개의 채널이 있습니다. 디스크 번호는 커널 디바이스 이름에 해당합니다. 디스크 채널은 디스크 작업이 있을 때만 표시됩니다.
표식 채널
표식 채널은 응용 프로그램에서 생성된 이벤트 및 여기에 사용되는 라이브러리에 해당합니다. 예를 들어 작업 병렬 라이브러리, 병렬 패턴 라이브러리 및 C++ AMP는 표식으로 나타나는 이벤트를 생성합니다. 각 표식 채널은 채널 설명 옆에 표시되는 스레드 ID와 연결됩니다. ID는 이벤트를 생성한 스레드를 식별합니다. 채널 설명에는 이벤트를 생성한 ETW(Windows용 이벤트 추적) 공급자의 이름이 포함됩니다. 채널에 동시성 시각화 도우미 SDK의 이벤트가 표시될 경우 계열 이름도 표시됩니다.
GPU 채널
GPU 채널에는 시스템의 DirectX 11 작업에 대한 정보가 표시됩니다. 그래픽 카드와 연결된 각 DirectX 엔진에는 개별 채널이 포함됩니다. 개별 세그먼트는 DMA 패킷 처리 시간을 나타냅니다.
선택 영역 복사
보고서 탭에서 전체 호출 스택을 복사하려면 복사를 클릭합니다. 그런 다음 해당 작업을 지원하는 임의의 프로그램에서 호출 스택을 붙여넣을 수 있습니다.
현재 탭
현재 탭을 클릭하면 CPU 스레드 세그먼트가 선택된 경우 타임라인에서 현재 선택 지점과 가장 가까운 호출 스택(사용 가능한 경우)을 볼 수 있습니다. 이 경우, 선택 지점은 타임라인 위에 검은색 화살표 또는 캐럿으로 표시됩니다. 차단 세그먼트가 선택되어 있으면 이 세그먼트에는 실행 항목이 없었으므로 캐럿이 표시되지 않습니다. 하지만 세그먼트가 여전히 강조 표시되어 있고 호출 스택이 표시됩니다.
또한 현재 탭에는 DirectX 작업 세그먼트, 표식 및 I/O 액세스에 대한 정보가 표시됩니다. DirectX 작업 세그먼트의 경우 DMA 패킷이 하드웨어 큐에서 처리되는 방법에 대한 자세한 내용이 표시됩니다. 표식의 경우, 설명 및 표식 유형에 대한 정보가 표시됩니다. I/O 액세스의 경우 파일 및 읽거나 쓴 바이트 수에 대한 정보가 표시됩니다.
빈 시간 표시 막대 세그먼트
동시성 시각화 도우미에서 타임라인의 섹션이 비어 있는 이유(흰색 배경)는 채널 종류에 따라 달라집니다.
CPU 스레드 채널의 경우에는 이 타임라인 부분에서 스레드가 존재하지 않았음을 의미합니다. 스레드를 조사하면 확대/축소 컨트롤을 사용하거나 가로로 스크롤해서 실행 중인 섹션을 찾을 수 있습니다.
I/O 채널의 경우에는 해당 시점에서 대상 프로세스를 대신해서 디스크 액세스가 발생하지 않았음을 의미합니다.
DirectX 채널의 경우, 이 타임라인 부분에서 대상 프로세스를 대신해서 GPU 작업이 수행되지 않았음을 의미합니다.
표식 채널의 경우에는 표식이 생성되지 않았음을 의미합니다.
내보내기 단추(동시성 시각화 도우미)
내보내기 단추를 통해 사용자 고유의 레코드 또는 Microsoft Excel과 같은 다른 도구와 함께 사용하기 위해 .csv 파일로 호출 스택을 내보낼 수 있습니다.
내 코드만(스레드 뷰)
이 옵션을 선택하는 경우 호출 스택을 필터링하여 사용자 코드와 호출된 함수의 한 수준만을 표시합니다.
이 옵션을 활성화하여 호출 스택의 복잡성을 상당히 줄일 수 있으며 특정 문제를 더 쉽게 진단할 수 있도록 할 수 있습니다.
경우에 따라 이 옵션을 선택하면 차단 호출이 필터링될 수 있습니다. 이를 결정하기 위해 전체 호출 스택 세부 내용이 필요한 경우 이 옵션을 선택 취소하여 전체 호출 스택을 표시합니다.
채널 관리
동시성 시각화 도우미의 스레드 뷰에서는 특정 패턴을 검사할 수 있도록 프로세스에 대한 채널을 구성할 수 있습니다. 채널을 정렬하고, 이를 위 또는 아래로 이동하고, 표시하거나 숨길 수 있습니다.
정렬 기준
정렬 기준 컨트롤을 사용하면 현재 확대/축소 수준에 따라 서로 다른 기준으로 스레드를 정렬할 수 있습니다. 이 기능은 특히 특정 패턴을 찾고 있는 경우에 유용합니다. 다음과 같은 기준에 따라 정렬할 수 있습니다.
기준 | 정의 |
---|---|
시작 시간 | 시작 시간으로 스레드를 정렬합니다. 기본 정렬 순서입니다. |
종료 시간 | 종료 시간을 기준으로 스레드를 정렬합니다. |
실행 | 실행에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
동기화 | 동기화에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
I/O | I/O(데이터 읽기 및 쓰기)에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
절전 | 중지에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
페이징 | 페이징에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
선점 | 선점에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
UI 처리 | 사용자 인터페이스 처리에 소요된 시간의 백분율을 기준으로 스레드를 정렬합니다. |
선택한 채널을 위 또는 아래로 이동
이러한 컨트롤을 사용해서 목록에서 채널을 위 또는 아래로 이동할 수 있습니다. 예를 들어 특정 패턴 또는 크로스 스레드 관계를 조사할 수 있도록 관련 채널을 서로 옆에 배치할 수 있습니다.
선택한 채널을 맨 위 또는 맨 아래로 이동
특정 패턴을 조사하거나 다른 패턴을 조사할 때의 과정 중에 일부 패턴을 이동할 수 있도록 목록의 맨 위 또는 맨 아래로 선택한 채널을 이동할 수 있습니다.
선택한 채널 숨기기
채널을 숨기려면 이 컨트롤을 선택합니다. 예를 들어 스레드가 관리되는 프로세스의 수명 주기 동안 100% 동기화된 경우 다른 스레드를 분석할 때 이를 숨길 수 있습니다.
참고 항목
스레드를 숨기면 이 스레드는 활성 범례 및 프로필 보고서에 표시되는 계산 시간에서도 제거됩니다.
모든 채널 표시
하나 이상의 채널을 숨기면 이 컨트롤이 활성화됩니다. 이 컨트롤을 선택하면 숨겨진 모든 요소가 표시되고 시간 계산에 반환됩니다.
표식을 맨 위로 이동
추적에 표식 이벤트가 포함된 경우, 이 명령을 사용해서 표식 채널을 타임라인의 맨 위로 이동할 수 있습니다. 상대적인 순서는 보존됩니다.
스레드로 표식 그룹화
추적에 표식 이벤트가 포함된 경우 이 명령을 사용해서 표식 이벤트를 생성한 스레드에 따라 표식 채널을 그룹화할 수 있습니다. 디스크 채널은 채널 목록의 맨 위로 이동되고, GPU 채널은 맨 아래로 이동됩니다.
측정 모드 켜기/끄기
이 도구를 사용하여 타임라인에서 시간을 정확하게 측정할 수 있습니다. 측정 모드를 사용하려면 측정 단추(눈금자 아이콘이 있음)를 클릭한 다음 타임라인에서 끌어옵니다. 끌어오면 포인터 아래 영역이 노란색으로 강조 표시되고 측정된 시간이 단추의 오른쪽 도구 모음에 표시됩니다. 이 값은 특정 이벤트가 소요되는 시간을 즉시 확인할 수 있도록 끌어올 때 동적으로 계산됩니다. 마우스 단추를 놓을 때 시간 값이 표시됩니다.
측정 프로세스를 반복할 수 있지만 가장 최근의 측정값만 표시됩니다. 측정 단추를 다시 클릭하여 측정 모드를 끕니다.
노이즈 감소 백분율
기본적으로 노이즈 감소 백분율 설정의 값은 2입니다. 이 설정보다 크거나 같은 포괄 시간의 백분율을 갖는 항목만 호출 트리에 표시됩니다. 설정을 변경하여 호출 트리에 표시되는 항목의 수를 제어할 수 있습니다. 예를 들어 값을 10으로 변경하면 10%보다 크거나 같은 포괄 시간을 가진 호출 트리 항목만 표시됩니다. 설정의 값을 늘려 프로세스의 성능에 큰 영향을 주는 항목에만 집중할 수 있습니다.
표시되는 시간 범위를 기반으로 하는 보고서
프로필 뷰는 현재 표시된 시간 범위 및 채널을 기반으로 하는 보고서를 표시합니다. 다른 데이터 하위 집합에 대한 세부 정보를 보려면 범례에서 항목을 클릭합니다.
스레드 뷰 보고서에서 데이터에 대한 자세한 정보를 찾을 수 있습니다.
스레드 준비 커넥터
호출 스택 및 해당 차단 해제 스택을 보기 위해 차단 세그먼트를 클릭하면 스레드 준비 커넥터가 나타날 수도 있습니다. 차단 해제 이벤트가 현재 프로세스의 다른 스레드에서 발생한 경우 스레드 준비 커넥터는 실행을 계속하기 위해 차단된 스레드를 활성화한 스레드 및 실행 세그먼트를 시각적으로 식별합니다.
타임라인 캐럿
실행 중인 스레드 세그먼트의 타임라인에서 한 지점을 선택하면 타임라인 캐럿이 위에 표시됩니다. 현재 스택 탭에 표시되는 호출 스택은 세그먼트를 클릭한위치와 시간상 가장 가까운 스택입니다. 캐럿은 호출 스택을 연결하는 데 사용됩니다. 호출 스택은 샘플링된 시간과 함께 현재 탭 아래에 표시됩니다. 캐럿에는 호출 스택의 정확한 위치(사용자가 선택한 위치와 가장 가까운 호출 스택)가 표시됩니다.
스택 차단 해제
현재 선택된 스레드 요소가 현재 프로세스의 다른 스레드에 의해 차단이 해제된 후 나중에 실행되기 시작한 차단된 세그먼트를 나타내는 경우, 차단 해제를 수행한 스레드의 호출 스택이 이 탭에 표시됩니다.
표시되는 타임라인 프로필
스레드 차단 뷰의 표시되는 시간 표시 막대 프로필은 통계 정보 및 보고서에 대한 링크를 제공합니다. 확대/축소하거나, 가로로 스크롤하거나, 채널을 숨기거나 표시할 때는 현재 뷰에 포함된 항목을 반영하여 활성 범례의 번호가 변경됩니다. 범례에서 항목에 대한 보고서를 보려면 항목을 클릭합니다.
확대/축소 컨트롤(스레드 뷰)
확대/축소 컨트롤은 특정 관심 영역을 중점적으로 확인하기 위해 시간 표시 막대를 확대/축소하는 데 사용할 수 있는 슬라이더입니다. 이 컨트롤은 시간 표시 막대 뷰의 가운데를 확대하므로, 확대하기 전에 관심 영역을 가운데에 맞춰야 합니다.
타임라인 뷰에서 끌어서 확대
타임라인 뷰에서 끌어서 확대하는 경우 노란색으로 강조 표시된 영역이 생성됩니다. 마우스 단추를 놓으면 시간 표시 막대 뷰에서 선택한 범위가 확대됩니다.
마우스 휠을 사용하여 확대 및 축소
타임라인에서 임의의 점을 클릭하여 마우스 포커스를 설정한 다음, Ctrl 키를 누르고 마우스 휠을 움직입니다. 휠을 앞으로 움직이면 확대되고 뒤로 움직이면 축소됩니다.