다음을 통해 공유


스레드 뷰(병렬 성능)

스레드 뷰는 동시성 시각화 도우미에서 가장 세부적이고 기능이 뛰어난 뷰입니다. 이 뷰를 사용하면 스레드가 실행 중인지 아니면 동기화, I/O 또는 기타 원인으로 차단 중인지 확인할 수 있습니다.

프로필 분석 중 동시성 시각화 도우미에서는 각 응용 프로그램 스레드에 대해 모든 운영 체제 컨텍스트 전환 이벤트가 검사됩니다. 컨텍스트 전환은 다음과 같은 여러 가지 이유로 발생할 수 있습니다.

  • 동기화 기본 형식에서 스레드가 차단된 경우

  • 스레드의 퀀텀이 만료된 경우

  • 스레드에서 블로킹 I/O를 요청하는 경우

스레드 뷰에서는 스레드가 실행을 중지했을 때 모든 컨텍스트 전환에 범주가 할당됩니다. 이 범주는 뷰의 맨 왼쪽에 있는 범례에 표시되며 해당 도움말 항목에서 자세한 내용이 설명됩니다. 컨텍스트 전환 이벤트를 분류하기 위해서는 스레드의 호출 스택에서 잘 알려진 블로킹 API가 검색됩니다. 일치하는 호출 스택을 찾을 수 없는 경우에는 Windows에서 제공하는 대기 원인이 사용됩니다. 기술적으로 올바르긴 하지만 Windows 범주는 사용자의 예상이나 의도와는 달리 구현 세부 사항을 기반으로 할 수 있습니다. 이러한 예로 Windows에서는 네이티브 슬림 판독기/작성기 잠금에서의 차단을 동기화 대신 I/O로 보고합니다. 하지만 이러한 경우에는 컨텍스트 전환 이벤트에 해당하는 호출 스택을 검사하여 차단 이벤트의 근본 원인을 파악할 수 있어야 합니다.

스레드 뷰에는 스레드 간 종속성도 표시됩니다. 예를 들어 동기화 개체에서 차단된 스레드를 확인한 경우, 이 도구는 해당 스레드를 차단 해제한 스레드와 이 스레드가 차단을 해제할 때 수행하고 있던 작업을 이 스레드의 호출 스택을 표시하여 보여 줄 수도 있습니다.

마지막으로, 스레드가 실행 중일 때 이 도구는 실행 세그먼트 중 하나 이상의 스레드에 의해 실행되는 코드를 분석할 수 있도록 샘플을 수집합니다. 이 뷰에서는 샘플을 기반으로 스레드 실행을 시각화할 뿐 아니라 호출 스택 트리 실행 프로파일링 보고서와 차단 보고서도 제공합니다.

용도

스레드 뷰는 다양한 용도로 사용할 수 있습니다. 일반적으로 다음과 같은 용도로 사용할 수 있습니다.

  • 특정 실행 단계에서 응용 프로그램의 UI(사용자 인터페이스)가 응답하지 않는 원인을 파악합니다.

  • 동기화, I/O, 페이지 폴트 등에서 차단에 소요된 시간을 확인합니다.

  • 시스템에서 실행 중인 다른 프로세스와의 충돌 정도를 파악합니다.

  • 병렬 실행 시의 부하 분산 문제를 파악합니다.

  • 시스템에서 더 많은 논리 코어를 사용할 수 있는데도 병렬 응용 프로그램의 성능이 향상되지 않는 경우와 같이 확장성이 없거나 최적 수준이 아닌 원인을 파악합니다.

  • 병렬화를 지원하기 위해 응용 프로그램의 동시성 수준을 확인합니다.

  • 작업자 스레드와 중요 실행 경로 간의 종속성을 확인합니다.

이 단원의 나머지 부분에서는 이 뷰를 가장 효율적으로 사용하기 위한 권장 사용 패턴에 대해 설명합니다. 관심 있는 프로세스 실행의 특정 단계에 주안점을 두려면 먼저 CPU 사용률 뷰를 사용하는 것이 좋습니다. 응용 프로그램에서 시나리오 마커 지원을 사용하면 이 프로세스에 크게 도움이 됩니다. 관심 있는 실행 시간 창을 확대한 경우 스레드 뷰를 선택할 수 있습니다.

관심 영역 식별 및 범위 좁히기

스레드 뷰에는 X축에 시간이 표시된 시간 표시 막대 뷰가 나타납니다. Y축에는 두 개의 I/O 채널, 즉 프로필 수집 중 활성 상태였던 시스템의 각 실제 디스크 장치에 대한 읽기 채널과 쓰기 채널이 표시됩니다. 디스크 채널 아래에는 프로세스의 각 스레드에 대한 채널이 표시됩니다. 처음에 스레드는 만들어진 순서대로 정렬되므로 주 응용 프로그램이 첫 번째 스레드가 됩니다. 뷰의 왼쪽 위에 있는 정렬 옵션을 사용하여 가장 많은 실행 작업을 수행하고 있는 스레드 등의 다른 기준으로 스레드를 정렬할 수도 있습니다.

그런 다음 왼쪽 열에서 스레드 이름을 선택하고 도구 모음의 선택한 스레드를 숨깁니다. 아이콘을 클릭하여 관심 있는 시나리오에서 아무 작업도 수행하고 있지 않은 스레드를 숨길 수 있습니다. 이러한 스레드가 존재하는 이유는 여러 가지가 있을 수 있습니다. 예를 들면 유휴 스레드 풀 스레드인 경우가 해당될 수 있습니다. 이러한 스레드는 일반적으로 동기화가 주 원인이 되어 완전히 차단됩니다. 이러한 스레드에 대한 통계로 인해 보고서에 불필요한 정보가 포함될 수 있으므로 뷰에서 해당 스레드를 제거해야 합니다.

실행 분석 탭의 보고서를 사용하여 숨길 수 있는 추가 스레드를 식별할 수 있습니다. 실행 분석 그래프를 보려면 활성 범례에서 스레드 단위 요약을 클릭합니다. 이 그래프에는 현재 표시된 시간 창의 응용 프로그램에 있는 스레드에 대한 스레드 상태 분석이 표시됩니다. 이 그래프의 확장성을 지원하기 위해 표시되는 스레드 수가 제한되어 있으므로 일부 경우에는 응용 프로그램에 있는 일부 스레드에 대한 데이터가 그래프에 표시되지 않을 수 있습니다. 이러한 경우에는 맨 오른쪽에 줄임표가 표시됩니다.

관심 영역으로 분석 범위를 좁히고 관심 있는 스레드를 선택한 후에는 성능 분석을 시작할 수 있습니다. 다음 단원에서는 사용할 수 있는 다양한 도구에 대해 설명합니다.

스레드 차단 정보

스레드 차단 영역에 대한 근본적인 원인을 파악하려면 해당 영역 중 하나를 마우스로 가리키거나 마우스 왼쪽 단추로 클릭하여 선택합니다. 차단 영역 위에 마우스를 놓으면 범주, 블로킹 API(사용 가능한 경우), 영역 시작 시간, 차단 기간 등 차단 이벤트에 대한 일반 정보가 포함된 도구 설명이 표시됩니다. 선점으로 인한 차단 범주의 경우에는 커널에 의해 스레드가 중지되었을 때 CPU에 예약되었던 프로세스의 프로세스 ID 및 스레드 ID도 표시됩니다. 관심 있는 채널의 차단 영역을 선택할 수도 있으며 이 경우 아래쪽 창에 현재 스택이 표시됩니다. 현재 스택 탭에는 도구 설명에 표시된 내용 외에도 스레드 차단을 유발한 호출 스택이 표시됩니다. 호출 스택을 검사하면 스레드 차단 이벤트의 근본적인 원인을 확인할 수 있습니다. 기본적으로 이 뷰에는 사용자 및 커널 스택을 포함하여 전체 호출 스택이 표시됩니다. 이 도구에서 특정 API가 문제의 원인임을 확인할 수 있으면 호출 스택에서 해당 프레임의 아래 부분은 잘립니다. 이 도구에서 차단을 유발한 루트 함수 호출을 확인할 수 없는 경우에는 전체 호출 스택이 표시되므로 사용자가 직접 호출 스택을 검사하여 이를 확인할 수 있습니다.

실행 경로로 인해 여러 차단 이벤트가 발생하는 경우가 종종 있습니다. 따라서 호출 스택별로 구성되는 누적 차단 지연 시간도 이해하고 있는 것이 좋습니다. 이를 위해 각 차단 범주에 대해 호출 트리 기반의 프로필 보고서가 제공됩니다. 왼쪽에서 차단 범주의 범례 항목 중 하나를 선택하면 해당 프로필을 볼 수 있습니다. 이러한 보고서를 통해 응용 프로그램 성능을 조정하기 위한 방법의 우선 순위를 빠르게 정할 수 있습니다.

스레드 간 종속성

동시성 시각화 도우미에서는 프로세스의 차단 스레드 간 종속성을 보여 줍니다. 어떤 스레드의 작업으로 인해 관심 있는 스레드가 차단 해제되었는지 확인하려면 관련된 차단 세그먼트를 클릭합니다. 이 도구에서 차단을 해제하는 스레드를 확인할 수 있으면 차단 세그먼트 다음의 실행 세그먼트를 다른 스레드에 연결하는 선이 그려집니다. 이 선은 다른 스레드가 선택한 스레드를 차단 해제한 방식을 보여 줍니다. 또한 차단 해제 스택 탭에는 관련 호출 스택이 표시됩니다. 따라서 차단된 스레드를 빠르게 확인하고, 해당 스레드에서 수행하려던 작업을 알아보고, 최종적으로 해당 스레드가 실행되도록 한 스레드를 확인할 수 있습니다.

스레드 실행 정보

응용 프로그램이 실행되고 있을 때 스레드에 의해 실행되고 있는 코드를 확인하면 유용한 경우가 있습니다. 이러한 영역은 시간 표시 그래프에서 녹색 세그먼트로 표시됩니다. 이를 위한 기능에는 두 가지가 있습니다.

첫째, 시간 표시 막대에서 실행 세그먼트를 클릭하면 가장 가까운 샘플 프로필 호출 스택이 검색됩니다. 검색에 성공하면 실행 블록에서 해당 샘플이 수집된 위치 위에 검정색 캐럿이 표시되고 현재 스택 탭에는 호출 스택이 표시됩니다. 실행 세그먼트의 다른 부분을 클릭하면 다른 샘플을 선택할 수 있습니다. 샘플을 찾을 수 없는 경우도 있을 수 있는데 이는 일반적으로 샘플 프로필이 수집되는 간격이 1밀리초이기 때문입니다. 예를 들어 실행 세그먼트의 길이가 1밀리초 미만이면 호출 스택이 수집되지 않을 수 있습니다. 샘플링 빈도를 변경할 수는 없지만, 1밀리초는 정확도와 실행 오버헤드를 모두 적정 수준으로 유지하기에 적절한 빈도입니다.

둘째, 실행 샘플링 프로필 보고서와 이 보고서의 호출 트리 뷰는 실행 시간이 소모된 위치를 확인하는 데 유용한 중요한 도구입니다. 이 기능은 활성 범례에서 실행 항목을 클릭하면 액세스할 수 있습니다. 실행 프로필에서는 현재 뷰에 있는 사용되는(숨겨지지 않은) 모든 스레드에 대한 샘플 보고서를 해당 창에 시간 범위별로 필터링하여 보여 줍니다.

시간 표시 그래프

시간 표시 그래프에서는 프로세스에 있는 모든 스레드와 호스트 컴퓨터에 있는 모든 실제 디스크 장치의 작업을 보여 줍니다. 마우스 포인터를 끌거나, 창 도구 모음의 확대/축소 슬라이더를 사용하거나, Ctrl 키를 누른 채 마우스 휠을 움직여 시간 표시 막대를 확대할 수 있습니다. 가로 막대, 즉 세그먼트 중 하나 위에 마우스를 놓으면 스레드의 해당 지점에 대한 범주, 시작 시간 및 기간이 표시됩니다. 세그먼트 중 하나를 클릭하면 현재 스택 탭의 화면 아래 부분에 호출 스택이 표시됩니다.

시간 표시 그래프에서는 특정 시간의 스레드 상태가 각기 다른 색으로 표시됩니다. 예를 들어 녹색 세그먼트는 실행 중인 스레드, 빨간색 세그먼트는 동기화를 위해 차단된 스레드, 노란색 세그먼트는 선점된 스레드, 자주색 세그먼트는 장치 I/O에 사용되는 스레드를 나타냅니다. 이 뷰는 병렬 루프 또는 동시 작업에 관여하는 여러 스레드의 작업 분산을 검사하는 데 유용합니다. 하나 이상의 스레드가 다른 스레드에 비해 더 오랜 시간을 소요하는 경우 이는 작업 부하가 분산되지 않았으며 스레드 간에 작업을 보다 고르게 분산하면 프로그램 성능을 향상시킬 수 있음을 나타냅니다.

시간 표시 그래프를 사용하여 스레드 간 종속성 및 차단하는 스레드와 차단되는 스레드 간의 일시적 관계를 검사할 수도 있습니다. 시간 표시 막대에서 원하는 지점의 세로 조각을 보고 해당 시간에 실행 중인 스레드 수를 확인할 수 있습니다. 해당 시간의 녹색(실행 중) 스레드가 하나뿐이면 이는 응용 프로그램이 시스템의 사용 가능한 동시성을 완전히 활용하고 있지 않음을 의미합니다. 도구 모음에서 위쪽 및 아래쪽 단추를 클릭하여 개별 스레드를 정렬 및 이동하거나, 스레드 숨기기 단추를 사용하여 원하지 않는 스레드를 숨길 수 있습니다.

프로필 보고서

시간 표시 그래프 아래에는 몇 가지 보고서가 포함된 활성 범례 탭 창이 표시됩니다. 프로필 보고서는 스레드 확대/축소, 스크롤, 숨기기/숨기기 취소 등의 작업에 의해 스레드 뷰가 변경될 때 자동으로 업데이트됩니다. 추적량이 많은 경우에는 업데이트된 보고서가 계산되는 동안 보고서 창이 흐리게 표시됩니다. 각 보고서에는 "노이즈 감소"와 "내 코드만"이라는 두 가지 필터 조정 기능이 있습니다. 노이즈 감소 기능은 소요된 시간이 적어서 검사할 필요가 없는 호출 트리 항목을 필터링하는 데 유용합니다. 기본값은 2%이지만 0%에서 99%까지 값을 조정할 수 있습니다. 내 코드만 확인란을 사용하면 사용자 소유가 아닌 호출 트리 항목을 필터링하거나 볼 수 있습니다. 다음 단원에서는 사용 가능한 보고서에 대해 설명합니다.

프로필 보고서

이 탭에서는 최신 프로필 보고서에 액세스할 수 있습니다. 활성 범례의 항목을 클릭하면 표시되는 프로필 보고서를 결정할 수 있습니다. 사용 가능한 프로필 보고서는 다음 단원의 실행에서부터 나열되어 있습니다.

현재 스택

이 탭에는 세부 정보 그래프에서 선택한 스레드 세그먼트의 호출 스택이 표시됩니다. 이 호출 스택은 프로그램과 직접적으로 관련이 있는 작업만 볼 수 있도록 잘립니다. 선택 영역 창에서는 현재 실행 중인 스레드 정보를 즉시 볼 수 있습니다.

차단 해제 스택

이 스레드를 차단 해제한 스레드와 해당 코드 줄을 보려면 차단 해제 스택을 클릭합니다.

실행

실행 프로필 보고서에는 자세한 표와 함께 각 스레드가 실행, I/O, 메모리 관리 등의 다양한 상태에서 소요한 시간의 백분율이 표시됩니다.

관심 있는 호출 트리 항목 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 실행 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄로 이동됩니다. 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 이동하는 것이 가장 유용합니다. 자세한 내용은 실행 프로필 보고서를 참조하십시오.

동기화

동기화 보고서에는 동기화 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다.

관심 있는 호출 트리 항목 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 동기화 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄에 연결됩니다. 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 동기화 시간을 참조하십시오.

I/O

I/O 보고서에는 I/O 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다.

관심 있는 호출 스택 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 I/O 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄에 연결됩니다. 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 I/O 시간(스레드 뷰)을 참조하십시오.

중지

중지 보고서에는 중지 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다.

관심 있는 호출 스택 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 중지 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 사용할 수 있는 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄에 연결됩니다. 사용할 수 있는 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 중지 시간을 참조하십시오.

페이징

페이징 보고서에는 선점 차단이 발생한 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다. 선점은 일반적으로 코드에 의해 발생하는 것이 아니라 운영 체제에서 프로세스에 대해 적용하는 것이므로 이 차단 보고서를 통해 수행할 수 있는 작업은 다른 보고서의 경우보다 적습니다. 이 보고서에는 발생한 선점의 유형, 선점이 발생한 위치 및 프로세스가 특정 선점 상태로 유지되었던 시간 등이 표시됩니다.

관심 있는 호출 트리 항목 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 선점 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 사용할 수 있는 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄로 직접 이동됩니다. 사용할 수 있는 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 메모리 관리 시간을 참조하십시오.

선점

페이징 보고서에는 선점 차단이 발생한 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다. 선점은 일반적으로 코드에 의해 발생하는 것이 아니라 운영 체제에서 프로세스에 대해 적용하는 것이므로 이 차단 보고서를 통해 수행할 수 있는 작업은 다른 보고서의 경우보다 적습니다. 이 보고서에는 발생한 선점의 유형, 선점이 발생한 위치 및 프로세스가 특정 선점 상태로 유지되었던 시간 등이 표시됩니다.

관심 있는 호출 스택 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 선점 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 사용할 수 있는 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄로 직접 이동됩니다. 사용할 수 있는 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 선점 시간을 참조하십시오.

UI 처리

UI 처리 보고서에는 UI 처리 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다. 이 정보를 사용하여 관심 있는 영역을 확인하고 조사할 수 있습니다.

관심 있는 호출 트리 항목 옆의 트리 컨트롤을 클릭하면 드릴다운하여 해당 UI 처리 시간이 소요된 코드 줄을 찾을 수 있습니다. 관심 있는 호출 트리 항목을 식별한 후 해당 항목을 마우스 오른쪽 단추로 클릭하면 소스 보기호출 사이트 보기가 포함된 상황에 맞는 메뉴가 나타납니다. 소스 보기를 클릭하면 해당 소스 줄로 이동되고 호출 사이트 보기를 클릭하면 해당 소스를 호출한 코드 줄로 이동됩니다. 사용할 수 있는 호출 사이트가 하나뿐인 경우 이 단추를 클릭하면 해당 호출 사이트에 대한 강조 표시된 코드 줄에 연결됩니다. 사용할 수 있는 호출 사이트가 여러 개인 경우에는 항목을 선택할 수 있는 대화 상자가 표시됩니다. 소스로 이동 단추를 클릭하면 강조 표시된 호출 사이트로 이동됩니다. 대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스를 선택하여 연결하는 것이 가장 유용합니다. 자세한 내용은 UI 처리 시간을 참조하십시오.

스레드 단위 요약

이 탭에는 각 스레드가 실행 중, 차단, I/O 등의 각 상태에서 소요한 총 시간이 색으로 구분된 열 뷰로 표시됩니다. 열 레이블은 맨 아래에 표시됩니다. 기본 확대/축소 수준에서 주 스레드는 맨 왼쪽 열에 해당합니다. 세부 정보 그래프에서 확대/축소 수준을 조정하면 새 시간 범위에 맞게 탭 보고서가 자동으로 업데이트됩니다. 이 그래프의 확장성을 지원하기 위해 표시되는 스레드 수가 제한되어 있으므로 일부 경우에는 응용 프로그램에 있는 일부 스레드에 대한 데이터가 그래프에 표시되지 않을 수 있지만, 이 경우 맨 오른쪽에 줄임표가 표시되어 이러한 제한이 있음을 나타냅니다. 이 그래프에서 보려는 스레드가 표시되지 않을 경우에는 원하는 스레드가 그래프에 표시될 때까지 필요하지 않은 스레드를 숨길 수 있습니다. 자세한 내용은 스레드별 요약 보고서를 참조하십시오.

파일 작업

이 탭에는 디스크 I/O에 관련된 스레드와 해당 스레드에서 액세스한 파일이 표시됩니다. 여기에는 로드된 DLL, 읽은 바이트 수 및 기타 정보가 포함됩니다. 이 보고서는 실행 중 파일에 액세스하는 데 소요된 시간을 계산하는 데 유용할 수 있습니다. 특히 프로세스가 I/O 바인딩된 것으로 보이는 경우에 유용합니다. 자세한 내용은 파일 작업 보고서(스레드 뷰)를 참조하십시오.

참고 항목

개념

동시성 시각화 도우미