다음을 통해 공유


스레드 뷰(병렬 성능)

스레드 뷰 가장 자세 하 고 풍부한 기능을 갖춘 보기에서 동시성 시각화 도우미입니다.이 보기를 사용 하 여 스레드가 실행 중이거나 동기화, I/O, 또는 일부 다른 이유로 인해 차단 여부를 확인할 수 있습니다.

프로필 분석 하는 동안 각 응용 프로그램 스레드에 대 한 모든 운영 체제 컨텍스트 스위치 이벤트 시각화 도우미 동시성을 검사합니다.컨텍스트 스위치의 다음과 같은 여러 가지 이유로 발생할 수 있습니다.

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

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

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

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

스레드는 스레드 간의 종속성 표시 됩니다.예를 들어, 동기화 개체를 차단 된 스레드를 식별 하는 경우, 해제는 스레드를 찾을 수 있습니다 및 다른 하나를의 차단을 해제 하면 지점에 해당 스레드에 대 한 호출 스택에 활동을 검사할 수 있습니다.

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

용도

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

  • 이유는 응용 프로그램의 사용자 인터페이스 (UI) 특정 실행 단계 동안 응답 하지 않는 이유를 식별 합니다.

  • 블로킹 동기화, I/O, 페이지 폴트 및 기타 이벤트에 소요 된 시간을 확인 합니다.

  • 시스템에서 실행 중인 다른 프로세스의 방해의 정도 확인 합니다.

  • 병렬 실행에 대 한 로드 균형 조정 문제를 식별 합니다.

  • 확장성 (논리적인 코어를 사용할 수 있는 경우 예를 들어 병렬 응용 프로그램의 성능이 향상 되지 이유)는 최적이 아닌 또는 존재 하지 않는 이유를 식별 합니다.

  • 병렬 처리를 위해 응용 프로그램에서 동시성의 정도 이해 합니다.

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

특정 시간 간격 및 스레드를 검사합니다.

스레드는 타임 라인을 표시 됩니다.확대 하 고 특정 간격 및 응용 프로그램의 스레드를 검사 하는 일정 내에서 이동 합니다.X 축에 시간 이며 y 축에 여러 채널:

  • 각 디스크 드라이브 시스템, 채널 읽기와 쓰기에 대해 두 개의 I/O 채널입니다.

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

  • 표식 이벤트 추적에 있을 경우 마커 채널입니다.마커 채널 이벤트만 생성 스레드 채널에서를 처음에 표시 됩니다.

  • GPU 채널입니다.

스레드 보기의 그림은 다음과 같습니다.

스레드 뷰

스레드 뷰

처음에 주 응용 프로그램 스레드가 첫 번째 수 있도록 스레드는 작성 된 순서 대로 정렬 됩니다.(예를 들어, 대부분의 실행 작업으로) 다른 기준에 따라 스레드를 정렬 하려면 보기의 왼쪽 위 모서리에 정렬 옵션을 사용할 수 있습니다.

작업 이름 왼쪽에 있는 열에서 선택 하 고 선택 하 여 수행 하는 스레드를 숨길 수는 선택한 스레드 숨기기 도구 모음 단추.해당 통계 관련 되며 보고서 막힐 수 있으므로 완전히 차단 된 스레드를 숨기는 것이 좋습니다.

선택, 현재 범례에서 숨길 수 있는 추가 스레드를 식별 하는 당 스레드 요약 보고서는 프로 파일 보고서 탭.그러면 현재 선택한 시간 간격에 대 한 스레드의 상태를 보여 주는 실행 분석 결과 그래프에 표시 됩니다.일부 확대/축소 수준으로는 일부 스레드가 표시 될 수 있습니다.이 경우 타원이 오른쪽에 표시 됩니다.

간격의 시간 및 일부 스레드를 선택 했으면 성능 분석을 시작할 수 있습니다.

분석 도구

이 단원에서는 보고서 및 기타 분석 도구를 설명합니다.

Dd627193.collapse_all(ko-kr,VS.110).gif스레드 차단 정보

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

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

Dd627193.collapse_all(ko-kr,VS.110).gif스레드 간의 종속성

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

Dd627193.collapse_all(ko-kr,VS.110).gif스레드 실행 정보

스레드 시간 표시 막대 그래프에 때 코드를 실행 했습니다 녹색 세그먼트를 보여 줍니다.실행 세그먼트에 대 한 자세한 정보를 얻을 수 있습니다.

실행 세그먼트에서 점을 선택 하는 경우 동시성 시각화 도우미 관련 호출 스택의 해당 시점에서 찾습니다 및 다음 선택한 지점에 실행 세그먼트 위에 검정 캐럿 표시 및 호출 스택이 표시 됩니다 있는 현재 스택 탭.실행 세그먼트의 점을 여러 개 선택할 수 있습니다.

[!참고]

동시성 시각화 도우미는 실행 세그먼트에서 선택 영역을 해결 하지 못할 수도 있습니다.일반적으로 지속 시간 세그먼트 미만의 한 밀리초 때 발생 합니다.

모든 스레드에서 현재 선택한 시간 범위 (숨김 해제)에 대 한 실행 프로필을 가져오려면 선택은 실행 활성 범례에서 단추.

Dd627193.collapse_all(ko-kr,VS.110).gif시간 표시 그래프

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

시간 표시 막대 그래프에 색상을 동시에 스레드 상태를 나타냅니다.예를 들어, 녹색 세그먼트가 실행 된, 빨간 세그먼트에 대 한 동기화 차단 되었습니다, 노란색 세그먼트는 선점 된 및 자주색 세그먼트 I/O 장치에 참여 했습니다.병렬 루프에서 또는 동시 작업에 관련 된 스레드 간에 작업의 균형을 검사 하려면이 보기를 사용할 수 있습니다.스레드가 다른 것 보다 완료 시간이 오래 걸리는 경우 작업 균형이 맞지 않을 수 있습니다.이 정보를 사용 하면 스레드 간에 더 균등 하 게 작업을 분산 하 여 프로그램의 성능을 향상 시킬 수 있습니다.

하나의 스레드가 막대만 녹색 (지점에서 한 번에 실행) 이면 응용 프로그램 전체 동시성 시스템에 활용 될 수 없습니다.타임 라인 그래프를 사용 하 여 스레드와 블로킹 간에 임시 관계 간에 의존 관계를 검토 하 고 스레드를 차단 합니다.스레드를 다시 정렬 하려면 스레드를 선택 하 고 위쪽의 도구 모음에서 선택 또는 아래쪽 단추를.스레드를 숨기려면 선택 및 다음 선택은 스레드 숨기기 단추.

Dd627193.collapse_all(ko-kr,VS.110).gif프로필 보고서

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

Dd627193.collapse_all(ko-kr,VS.110).gif프로필 보고서

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

Dd627193.collapse_all(ko-kr,VS.110).gif현재 스택

스레드 세그먼트에서 타임 라인 그래프에서 선택한 지점에 대 한 호출 스택이이 탭에 표시 합니다.호출 스택은 표시 프로그램에 관련 된 활동에만 잘립니다.

Dd627193.collapse_all(ko-kr,VS.110).gif차단 해제 스택

선택한 스레드, 스레드를 차단 해제를 참고 하십시오. 어떤 코드 줄을 선택 하는 Unblocking 스택 탭.

Dd627193.collapse_all(ko-kr,VS.110).gif실행

실행 보고서 분석 시간을 응용 프로그램의 실행을 보여 줍니다.

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

Dd627193.collapse_all(ko-kr,VS.110).gif동기화

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

Dd627193.collapse_all(ko-kr,VS.110).gifI/O

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

Dd627193.collapse_all(ko-kr,VS.110).gif중지

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

Dd627193.collapse_all(ko-kr,VS.110).gif메모리 관리

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

Dd627193.collapse_all(ko-kr,VS.110).gif선점

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

Dd627193.collapse_all(ko-kr,VS.110).gifUI 처리

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

Dd627193.collapse_all(ko-kr,VS.110).gif스레드 단위 요약

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

Dd627193.collapse_all(ko-kr,VS.110).gif디스크 작업

프로세스이 탭이 표시 되 고 스레드가 디스크 I/O 대신해 파일 들 (예: 로드 된 Dll) 작업에서 읽어온 바이트 수 방법, 현재 프로세스, 및 기타 정보에에서 관련 된.특히 프로세스 I/O 연결에 문제가 있을 경우 실행 하는 동안 파일 액세스에 소요 된 시간을 계산 하도록이 보고서를 사용할 수 있습니다.자세한 내용은 디스크 작업 보고서(스레드 뷰)를 참조하십시오.

참고 항목

개념

동시성 시각화 도우미