코어 뷰
코어 뷰에는 스레드 실행이 논리 프로세서 코어에 매핑된 방법이 표시됩니다(분석>동시성 시각화 도우미를 선택하여 동시성 시각화 도우미 시작). 서버 애플리케이션을 작성할 때 이 뷰를 통해 스레드 선호도 또는 스레드 풀 관리를 사용하여 캐시 성능을 최적화할 수 있습니다. 또한 스레드 선호도를 사용해서 코어 간 마이그레이션 문제가 더 심각해질 수 있는 경우를 조사할 수 있습니다. 코어 뷰에는 그래프와 범례의 두 부분이 포함됩니다.
그래프에서 Y축에는 논리 코어가 표시되고 X축에는 시간이 표시됩니다. 그래프의 모든 스레드에는 시간 경과에 따라 코어 간 이동을 추적할 수 있도록 고유 색상이 포함됩니다. 범례 영역에서 스레드를 선택하면 이 그래프에서 스레드를 필터링할 수 있습니다.
범례 영역에는 그래프의 각 색상에 대한 항목이 포함됩니다. 각 항목은 스레드 색상과 이름, 코어 간 컨텍스트 전환 횟수, 총 컨텍스트 전환 횟수 및 코어 간 컨텍스트 전환 비율을 보여줍니다. 범례는 코어 간 컨텍스트 전환 횟수를 기준으로 내림차순으로 정렬됩니다. 표시된 시간 범위 중에 실행된 스레드만 나열됩니다. 확대/축소하거나 이동하면 목록이 업데이트됩니다.
코어 뷰 범례
코어 뷰 범례는 색 및 이름으로 각 스레드를 식별합니다. 여기에는 코어 간 컨텍스트 전환 횟수, 총 컨텍스트 전환 및 코어 간 컨텍스트 전환 비율을 보여주는 열이 포함되어 있습니다. 범례의 행은 코어 간 컨텍스트 전환 횟수를 기준으로 내림차순으로 정렬됩니다.
범례에서 행을 선택하여 타임라인에 표시되는 스레드를 필터링할 수 있습니다. 선택한 스레드만 타임라인에 표시됩니다. 선택된 행이 없으면 타임라인에 모든 행이 표시됩니다.
코어 간 컨텍스트 전환은 동일한 논리적 코어에서 이뤄지는 전환보다 오버헤드 및 성능 비용이 높습니다. 컨텍스트 전환 중에는 프로세서 레지스터가 저장 및 복원되고, 운영 체제 커널 코드가 실행되며, 번역 내부 참조 버퍼 항목이 다시 로드되고 프로세서 파이프라인이 플러시됩니다. 코어 간 컨텍스트 전환은 캐시 데이터가 다른 코어에 있는 이 스레드에 대해 유효하지 않기 때문에 다른 컨텍스트 전환보다 비용이 높을 수 있습니다. 반면에, 스레드가 이전에 실행된 코어로 컨텍스트 전환되면 유용한 데이터가 캐시에 아직 있을 가능성이 있습니다. 스레드 선호도 관리를 위해 코어 간 컨텍스트 전환이 늘어나고, 성능이 저하될 때는 이 문제를 해결할지 여부를 고려해야 합니다. 먼저 스레드 선호도를 제거한 후 결과로 나타나는 코어 간 동작을 관찰합니다.
다음 표에서는 범례 요소에 대해 설명합니다.
요소 | 정의 |
---|---|
스레드 이름 | 이전 코어 타임라인의 스레드 색 및 해당 스레드의 이름을 표시합니다. |
코어 간 컨텍스트 전환 | 논리 코어 간에 전환된 스레드에 대한 컨텍스트 전환 수입니다. 하나의 프로세서 다이에서 다른 프로세서 다이로 이동하는 코어 간 컨텍스트 스위치와 동일한 다이에 유지되는 코어 간 컨텍스트 전환은 구분되지 않습니다. |
전체 컨텍스트 전환 | 샘플링 기간 동안 지정된 스레드에 대한 컨텍스트 전환의 총 수입니다. 스레드가 컨텍스트를 변경할 때마다(예를 들어 실행에서 동기화로 변경) 한 번의 컨텍스트 전환으로 계산됩니다. |
코어 간 컨텍스트 전환 비율 | 코어 간 컨텍스트 전환 횟수를 총 컨텍스트 전환 수를 나눠 백분율로 계산합니다. 이 비율이 높을수록 이 특정 스레드의 성능에 대한 코어 간 컨텍스트 전환의 전반적인 오버헤드 영향이 커집니다. |
코어 뷰 타임라인
타임라인의 각 행은 프로파일링된 시스템의 논리적 프로세서 코어를 나타냅니다. 각 행의 경우 가로 축은 지정된 시점에 논리 코어에서 실행된 스레드를 보여 줍니다. 타임라인에서 관심 있는 색을 가리켜 스레드를 식별하는 도구 설명으로 돌아갈 수 있습니다. 스레드 식별에 도움이 되도록 창 아래쪽의 범례는 각 색이 나타내는 것을 보여 줍니다. 클릭하고 끌어서 놓거나 CTRL 키를 누르고 마우스 휠을 이동하여 확대/축소하도록 확대/축소 도구를 사용합니다. 확대/축소 일관성은 코어 뷰와 스레드 뷰 사이를 전환할 때 유지 관리됩니다.
코어 뷰 논리 코어
각 채널 이름은 프로파일링된 시스템에 존재하는 논리 코어 중 하나를 나타냅니다. 명명은 0에서 논리 코어의 총 수까지 셉니다. 예를 들어 4코어 시스템은 논리 코어 0에서 논리 코어 3까지 셉니다.
코어 뷰 확대/축소 도구
확대/축소 컨트롤은 특정 관심 영역을 중점적으로 확인하기 위해 시간 표시 막대를 확대/축소하는 데 사용할 수 있는 슬라이더입니다. 이 컨트롤은 현재 보기의 중심에서 확대/축소하므로 확대하기 전에 보기를 조정합니다.
확대/축소하는 다른 방법
확대: 끌어서 타임라인 보기에서 영역을 선택합니다. 마우스 단추를 놓으면 시간 표시 막대 뷰에서 선택한 범위가 확대됩니다.
확대 및 축소: 타임라인을 가리킨 다음 마우스 휠을 움직이는 동안 Ctrl 키를 누릅니다.