다음을 통해 공유


플레임 그래프를 사용하여 실행 부하 과다 경로 식별(C#, Visual Basic, C++, F#)

CPU 사용률 및 계측을 위한 Visual Studio 프로파일링 도구에는 화염 그래프 보기가 포함됩니다. Flame Graph사용하면 호출 트리의 시각화를 표시하여 코드에서 핫 경로를 식별할 수 있습니다. 핫 경로는 CPU를 가장 많이 사용하거나 가장 많이 사용하는 함수에 대한 호출 스택이며 잠재적인 성능 최적화를 찾는 데 좋은 위치인 경우가 많습니다. 그래프는 애플리케이션에서 시간이 소요되는 위치에 대한 시각적 개요를 제공하며, 특정 노드를 클릭하여 더 자세히 살펴볼 수 있습니다.

상황에 맞는 메뉴가 표시된 불꽃 그래프를 보여 주는 스크린샷

사례 연구: 코드 최적화에 대한 초보자 가이드를 참조하여 플레임 그래프를 사용하여 성능을 향상시키는 방법을 보여 주는 자습서를 확인하세요. CPU 프로파일러에 대한 자세한 내용은 CPU 프로파일링을 사용하여 성능 분석을 참조하세요.

핫 경로 조사

화염 그래프 보기는 .diagession 보고서의 세부 정보 보기에 있습니다.

  1. CPU 사용량 또는 계측 도구를 사용하여 프로파일링 세션을 시작합니다.

  2. 프로파일링 세션을 중지하고 보고서가 로드되면 세부 정보 열기를 선택합니다.

    선택한 세부 정보 열기를 보여 주는 스크린샷

  3. 현재 보기 드롭다운 선택에서 플레임 그래프를 선택합니다.

    선택한 플레임 그래프 보기를 보여 주는 스크린샷.

    플레임 그래프 보기가 나타납니다.

    도구 설명이 표시된 플레임 그래프 개요를 보여 주는 스크린샷.

    핫 경로는 가장 많은 CPU를 사용하는 코드 경로이거나 호출 트리를 통해 아래쪽을 내다볼 때 가장 많은 시간을 사용하는 코드 경로입니다.

    기본적으로 Flame Graph에 표시된 데이터는 데이터 수집 기간 동안 호출 트리 뷰에 표시된 것과 동일한 데이터를 나타냅니다. 특히 CPU 사용량의 경우 총 CPU 값을 표시합니다. 이 값은 포함되므로 함수 호출에 사용되는 CPU 사용률(즉, CPU 계산 시간) 및 함수에서 호출하는 다른 함수가 포함됩니다. 마찬가지로 계측의 경우 그래프는 호출 트리 뷰의 Total 열에 해당하는 값을 표시합니다.

    그러나 노드를 선택하면 선택한 노드가 새 기준선이 되고 불꽃 그래프 너비의 100%를 사용합니다. 이렇게 하면 복잡한 호출 트리를 더 잘 시각화하고 잘리거나 숨겨질 때 긴 이름을 볼 수 있습니다. 다음은 더 복잡한 호출 트리를 보여 주는 불꽃 그래프의 예입니다.

    복잡한 호출 트리에 대한 화염 그래프를 보여 주는 스크린샷.

    노드에 대한 세부 정보를 보려면 노드를 선택합니다.

    기본 보기로 돌아가려면 확대/축소 다시 설정을 선택합니다.

    또한 노드를 선택한 다음 상황에 맞는 메뉴에서 호출 트리에서 보기와 같은 옵션을 선택하여 프로파일링 보고서의 다른 보기로 이동할 수도 있습니다.

    통화 트리에서 볼 수 있는 Flame Graph 옵션을 보여 주는 스크린샷

불꽃 그래프 대칭 이동

기본적으로 도구의 불꽃 그래프는 거꾸로 표시되거나 고드름 차트표시되며, 여기서 y축은 위쪽의 0에서 아래쪽으로 스택 깊이를 계산합니다.

대칭 이동 플레임 그래프를 클릭하여 표준 화염 차트 레이아웃을 볼 수 있습니다.

선택한 대칭 이동 플레임 그래프 스크린샷.

복잡한 플레임 그래프의 경우 특정 요소를 선택하여 시각적 개체를 확대/축소할 수 있습니다.

플레임 그래프 보기에서 마우스가 있는 노드를 클릭하거나 키보드를 사용하여 탐색할 수 있습니다. 또한, 다음 바로 가기 키가 지원됩니다.

바로 가기 키 명령
Tab 모든 노드로 이동
위/아래 화살표 노드의 상위 또는 하위 노드로 이동하기
오른쪽/왼쪽 화살표 스택에서 Node의 피어로 이동
Enter 확대(선택)
Esc 축소