다음을 통해 공유


스레드 뷰(병렬 성능)

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

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

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

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

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

스레드 뷰에서는 스레드가 실행을 중지했을 때 각각의 컨텍스트 전환에 범주가 할당됩니다.범주 보기의 왼쪽 아래 부분에 있는 범례에 표시 됩니다.동시성 시각화 도우미에서 컨텍스트 전환 이벤트를 분류하기 위해서는 스레드의 호출 스택에서 잘 알려진 블로킹 API가 검색됩니다.제공 하는 대기 원인이 호출 스택을 일치 하지 않는 경우 Windows 를 사용 합니다.그러나 해당 Windows 범주 기준으로 세부 정보 및 사용자의 의도 반영할 수 있습니다.예를 들어, Windows 대기 동기화 대신 I/O로 네이티브 슬림 판독기 / 작성기 잠금에서의 차단을 이유로 보고 있습니다.대부분의 경우에서 컨텍스트 스위치 이벤트에 해당 하는 호출 스택을 검사 하 여 차단 이벤트의 근본 원인을 식별할 수 있습니다.

스레드 뷰에 스레드 간 종속성도 표시 합니다.예를 들어, 동기화 개체에서 차단 된 스레드를 확인 하면,를 찾을 수 있습니다 및 차단을 다른 지점에 해당 스레드에 대 한 호출 스택에 활동을 검사할 수 있습니다.

스레드에서 실행하고, 동시성 시각화 도우미 샘플을 수집 합니다.스레드 뷰에서 실행 세그먼트 중 하나 이상의 스레드에 의해 실행 되는 코드를 분석할 수 있습니다.또한 차단 보고서 및 호출 스택 트리 실행 프로 파일링 보고서를 검토할 수 있습니다.

용도

스레드 뷰를 사용할 수 있는 몇 가지 방법은 다음과 같습니다.

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

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

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

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

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

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

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

특정 시간 간격 및 스레드 검사

스레드 뷰 시간 표시 막대를 표시 됩니다.확대/축소 하 고 특정 간격으로 응용 프로그램의 스레드를 검사 하는 시간 표시 막대에서 이동할 수 있습니다.시간은 x 축 및 y 축에는 여러 개의 채널:

  • 각 디스크 드라이브 시스템, 채널에 대 한 읽기 및 쓰기에 대 한 두 개의 I/O 채널

  • 프로세스의 각 스레드에 대 한 채널입니다.

  • 마커 채널 추적 중인 표식 이벤트입니다.이러한 이벤트를 생성 하는 스레드 채널 채널 마커 처음 나타납니다.

  • GPU 채널

스레드 뷰는 그림이 같습니다.

스레드 뷰

스레드 뷰

처음에 스레드는 만들어진 순서대로 정렬시키기 위해 주 응용 프로그램이 첫 번째 스레드가 됩니다.뷰의 왼쪽 위에 있는 정렬 옵션을 사용하여 가장 많은 실행 작업을 수행하고 있는 스레드 등의 다른 기준으로 스레드를 정렬할 수도 있습니다.

그런 다음 왼쪽 열에서 스레드 이름을 선택하고 도구 모음의 선택한 스레드를 숨깁니다. 아이콘을 클릭하여 관심 있는 시나리오에서 아무 작업도 수행하고 있지 않은 스레드를 숨길 수 있습니다.통계 관련 없는 보고서 막힐 수 있기 때문에 완전히 차단 된 스레드를 숨기는 것이 좋습니다.

선택한 활성 범례에서 숨길 수 있는 추가 스레드를 식별 하는 스레드 단위 요약 보고는 프로필 보고서 탭입니다.현재 선택한 시간 간격에 대 한 스레드의 상태를 보여 주는 실행 분석 그래프를 표시 합니다.일부 확대/축소 수준에서 일부 스레드를 표시 될 수 있습니다.이 경우 오른쪽에 줄임표가 표시 됩니다.

여기에 일부 스레드가 한 시간 간격을 선택한 경우 성능 분석을 시작할 수 있습니다.

분석 도구를 제공합니다.

보고서 및 분석 도구에 설명 합니다.

스레드 차단 정보

스레드에 특정 지역에 차단 이벤트에 대 한 정보를 얻으려면 해당 도구 설명을 표시할 영역에 포인터를 놓습니다.있는 경우 범주, 영역 시작 시간, 차단 기간 및 블로킹 API 등의 정보가 포함 됩니다.차단 영역을 선택 하면 해당 시점에서 스택 도구 설명에 표시 되는 동일한 정보와 함께 아래쪽 창에 표시 됩니다.호출 스택을 검사하면 스레드 차단 이벤트의 근본적인 원인을 확인할 수 있습니다.세그먼트를 선택 하 고 현재 탭을 검사 하 여 추가 프로세스 및 스레드 정보를 찾을 수 있습니다.

실행 경로 여러 차단 이벤트가 있을 수 있습니다.문제 영역을 보다 빠르게 찾을 수 있도록 범주를 차단 하 여이 검사할 수 있습니다.왼쪽의 범례에 차단 범주 중 하나를 선택 하기만 합니다.

스레드 간 종속성

동시성 시각화 도우미에서 수행 하 고 학습 하 려 하는 차단 된 스레드를 확인할 수 있도록 프로세스에서 스레드 간 종속성을 표시할 수 있습니다 어떤 다른 스레드가 실행 되도록 설정 합니다.어떤 스레드가 다른 스레드가 차단 해제를 확인 하려면 관련 된 차단 세그먼트를 선택 합니다.동시성 시각화 도우미가 이 도구에서 차단을 해제하는 스레드를 확인할 수 있으면 차단 세그먼트 다음의 실행 세그먼트를 다른 스레드에 연결하는 선이 그려집니다.또한 차단 해제 스택 탭에는 관련 호출 스택을 표시합니다.

스레드 실행 정보

스레드 시간 표시 그래프에서 녹색 세그먼트 코드가 실행 된 때를 표시 합니다.실행 세그먼트에 대 한 더 자세한 정보를 얻을 수 있습니다.

실행 세그먼트 시점을 선택할 때 동시성 시각화 도우미는 그 시점에 관련 된 호출 스택에 찾습니다 실행 세그먼트의 선택 된 위치 위에 검정색 캐럿을 표시 고에 호출 스택이 표시는 현재 스택 탭입니다.실행 세그먼트의 여러 지점을 선택할 수 있습니다.

[!참고]

동시성 시각화 도우미 실행 세그먼트 선택 영역을 확인할 수 없습니다.일반적으로 세그먼트의 기간은 1 밀리초 미만이 될 때 발생 합니다.

모두 (숨겨진된) 스레드에 현재 선택한 시간 범위에서에 대 한 실행 프로필에 게 선택된 실행 활성 범례에서 단추를 선택합니다.

시간 표시 그래프

시간 표시 그래프에서는 프로세스에 있는 모든 스레드와 호스트 컴퓨터에 있는 모든 실제 디스크 장치의 작업을 보여 줍니다.또한 GPU 표식 활동 및 이벤트를 표시합니다. 밖으로 시간 간격을 길게 설정 보기 또는 자세히 보기를 확대할 수 있습니다.범주, 시작 시간, 기간 및 호출 스택 상태에 대 한 정보를 그래프에서 요소를 선택할 수 있습니다.

시간 표시 그래프에서는 특정 시간의 스레드 상태가 각기 다른 색으로 표시합니다.예를 들어 녹색 세그먼트는 실행 중인 스레드, 빨간색 세그먼트는 동기화를 위해 차단된 스레드, 노란색 세그먼트는 선점된 스레드, 자주색 세그먼트는 장치 I/O에 사용되는 스레드를 나타냈습니다.이 뷰는 병렬 루프 또는 동시 작업에 관여하는 여러 스레드의 작업 분산을 검사하는 데 유용합니다.스레드는 다른 사람 보다 더 걸립니다, 작업 부하가 분산 된 수 있습니다.스레드 간에 더 균등하게 작업을 분산하여 프로그램의 성능을 향상 시키기 위해이 정보를 사용할 수 있습니다.

해당 시간의 녹색(실행 중) 스레드가 하나뿐이면 이는 응용 프로그램이 시스템의 사용 가능한 동시성을 완전히 활용하고 있지 않음을 의미합니다.시간 표시 그래프를 사용하여 스레드 간 종속성 및 차단하는 스레드와 차단되는 스레드 간의 일시적 관계를 검사할 수도 있습니다.스레드를 다시 정렬 하려면 스레드 선택 다음 도구 모음에서 선택 위로 또는 아래쪽 단추입니다.스레드를 숨기려면을 선택 하 고 다음을 선택 하면 스레드 숨기기 단추를 선택합니다.

프로필 보고서

타임 라인 아래 그래프는 시간 표시 막대 프로필 및 보고서의 다양 한 탭이 있는 창입니다.스레드 뷰를 변경 하면 보고서를 자동으로 업데이트 합니다.큰 추적에 대 한 보고서 창을 사용할 수 없습니다 업데이트는 계산 됩니다.각 보고서에는 "노이즈 감소"와 "내 코드만"이라는 두 가지 필터 조정 기능이 있습니다.노이즈 감소 기능은 소요된 시간이 적어서 검사할 필요가 없는 호출 트리 항목을 필터링하는 데 유용합니다.기본값은 2%이지만 0%에서 99%까지 값을 조정할 수 있습니다.코드에 대 한 호출 트리만 보기를 선택 하면 내 코드만 확인란을 선택합니다.모든 호출 트리를 보려면 선택을 취소 합니다.

프로필 보고서

이 탭이 활성 범례에 있는 항목에 해당 하는 보고서를 보여 줍니다.보고서를 표시 하려면 항목 중 하나를 선택 합니다.

현재 스택

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

차단 해제 스택

어떤 스레드가 선택한 스레드를 차단 해제 고 코드 줄을 선택 하면 차단 해제 스택 탭입니다.

실행

실행 보고서 실행에서 시간 응용 프로그램 분류를 보여 줍니다.

실행 시간이 소요 된 코드 줄을 찾기 호출 트리를 확장 한 다음 호출 트리 항목의 바로 가기 메뉴를 선택 소스 보기 또는 호출 사이트 보기를 선택합니다.소스 보기 는 실행 된 코드 줄로 이동시킵니다.호출 사이트 보기 실행된 코드 줄을 호출한 코드 줄으로 이동 합니다.호출 사이트가 존재 하나만 있는 경우 해당 코드 줄을 강조 표시 됩니다.호출 사이트가 여러 개인 경우를 표시 한 다음 선택 대화 상자에서 원하는 것을 선택할 수 있습니다는 소스로 이동 단추를 눌러 호출 사이트 코드입니다.대개 인스턴스 수가 가장 많거나 소요 시간이 가장 길거나 또는 둘 모두에 해당하는 호출 사이트의 소스 코드를 보는 것이 가장 유용합니다.자세한 내용은 실행 프로필 보고서을 참조하십시오.

동기화

동기화 보고서에는 동기화 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다.자세한 내용은 동기화 시간을 참조하십시오.

I/O

I/O 보고서에는 I/O 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다.자세한 내용은 I/O 시간(스레드 뷰)을 참조하십시오.

중지

중지 보고서에는 중지 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다.자세한 내용은 중지 시간을 참조하십시오.

메모리 관리

페이징 보고서에는 선점 차단이 발생한 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다.과도 한 페이징 또는 가비지 컬렉션 문제가 있는 영역을 식별 하려면이 정보를 사용할 수 있습니다. 자세한 내용은 메모리 관리 시간을 참조하십시오.

선점

선점 보고서에는 현재 프로세스와 개별 스레드가 현재 프로세스의 스레드를 대체 하는 시스템의 프로세스에서 선점 하는 곳의 인스턴스를 보여 줍니다.프로세스와 선점에 대 한 책임이 가장 하는 스레드를 식별 하기 위해이 정보를 사용할 수 있습니다.자세한 내용은 선점 시간을 참조하십시오.

UI 처리

UI 처리 보고서에는 UI 처리 차단을 유발하는 호출과 각 호출 스택의 집계 차단 시간이 함께 표시됩니다.자세한 내용은 UI 처리 시간을 참조하십시오.

스레드 단위 요약

이 탭에는 각 스레드가 실행 중, 차단, I/O 등의 각 상태에서 소요한 총 시간이 색으로 구분된 열 뷰로 표시됩니다.열 레이블은 맨 아래에 표시됩니다.시간 표시 그래프에서 확대/축소 비율을 조정 하면이 탭이 자동으로 업데이트 됩니다.일부 확대/축소 수준에서 일부 스레드를 표시 될 수 있습니다.이 경우 오른쪽에 줄임표가 표시 됩니다.원하는 스레드가 표시 되지 않으면 다른 스레드를 숨길 수 있습니다.자세한 내용은 스레드별 요약 보고서을 참조하십시오.

디스크 작업

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

참고 항목

개념

동시성 시각화 도우미