다음을 통해 공유


불꽃 그래프를 사용하여 활성 경로 식별(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% 사용합니다. 이렇게 하면 복잡한 호출 트리를 더 잘 시각화하고 잘리거나 숨겨질 때 긴 이름을 볼 수 있습니다. 다음은 더 복잡한 호출 트리를 보여 주는 불꽃 그래프의 예입니다.

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

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

    확대/축소 재설정을 선택하여 기본 보기로 돌아갑니다.

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

    호출 트리에서 볼 수 있는 화염 그래프 옵션을 보여 주는 스크린샷

불꽃 그래프 뒤집기

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

Flip Flame Graph을 클릭하여 표준 화염 차트 레이아웃을 볼 수 있습니다.

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

복잡한 불꽃 그래프의 경우 특정 요소를 선택하여 시각화를 확대/축소할 수 있습니다.

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

키보드 단축키 명령
모든 노드로 이동
위쪽/아래쪽 화살표 노드의 부모 또는 자식으로 이동
오른쪽/왼쪽 화살표 스택의 노드 피어로 이동하기
들어가다 확대(선택)
탈출 축소하기