Share via


WPF 성능 제품군

Windows SDK에는 WPF Performance Suite라는 WPF(Windows Presentation Foundation) 응용 프로그램용 성능 프로파일링 도구 집합이 포함되어 있습니다. WPF Performance Suite를 사용하여 WPF 응용 프로그램의 런타임 동작을 분석하고, 적용할 수 있는 성능 최적화 방법을 결정할 수 있습니다. WPF Performance Suite에는 Perforator와 Visual Profiler라는 성능 프로파일링 도구가 포함되어 있습니다. 이 항목에서는 WPF Performance Suite에 포함된 Perforator 및 Visual Profiler 도구의 설치 및 사용 방법에 대해 설명합니다.

이 항목에는 다음과 같은 단원이 포함되어 있습니다.

  • WPF Performance Suite 설치

  • WPF Performance Suite 시작

  • Perforator

  • Visual Profiler

WPF Performance Suite 설치

다음 단계에서는 WPF Performance Suite를 설치하는 방법에 대해 설명합니다.

  1. 이전 버전의 Windows Performance Toolkit이 설치되어 있으면 제거합니다.

  2. Windows SDK를 설치합니다.

    설치 옵션에서 Common Utilities(공통 유틸리티) 아래의 Windows Performance Toolkit 옵션을 선택합니다. 다운로드 정보는 Windows SDK 다운로드 페이지를 참조하십시오.

  3. Windows SDK가 설치된 후 시작 메뉴에서 모든 프로그램, Microsoft Windows SDK v7.1, **Tools(도구)**를 차례로 선택합니다.

  4. Tools(도구)에서 **Install Windows Performance Tool Kit(Windows Performance Tool Kit 설치)**을 클릭합니다.

    설치 마법사가 나타납니다.

  5. 나타나는 지침에 따라 Windows Performance Toolkit을 설치합니다.

    기본적으로 다음 기능이 설치됩니다.

    • Performance Analyzer

    • Windows Performance Toolkit 도움말

    • GPUView

    • WPF Performance Suite

WPF Performance Suite 시작

프로파일링할 응용 프로그램을 실행하기 전에 WPF Performance Suite를 시작해야 합니다. WPF Performance Suite를 사용하려면 사용 중인 사용자 계정에 관리자 권한이 있어야 합니다.

다음 단계에서는 WPF Performance Suite를 시작하는 방법에 대해 설명합니다.

  1. 시작 메뉴에서 모든 프로그램, Microsoft Windows Performance Toolkit을 차례로 선택합니다.

  2. WPF Performance Suite를 클릭합니다.

  3. 사용자 계정 컨트롤 대화 상자가 나타나면 를 클릭합니다.

    WPF Performance Suite가 시작됩니다.

WPF Performance Suite를 처음 시작할 때는 Add Tools(도구 추가) 대화 상자가 나타납니다. Add Tools(도구 추가) 대화 상자에서 성능 프로파일링 도구를 추가할 수 있습니다. 도구를 추가하려면 도구가 들어 있는 어셈블리를 선택하고 **Scan Assembly(어셈블리 검사)**를 클릭합니다. 언제든지 File(파일) 메뉴에서 **Add Tools(도구 추가)**를 클릭하여 Add Tools(도구 추가) 대화 상자를 열 수 있습니다. 다음 그림에서는 Add Tools(도구 추가) 대화 상자를 보여 줍니다.

Add Tools(도구 추가) 대화 상자

도구 추가 대화 상자

WPF Performance Suite에 기본적으로 포함된 성능 프로파일링 도구는 다음과 같습니다.

도구

설명

Perforator

렌더링 동작을 분석합니다.

Visual Profiler

시각적 트리의 요소별로 레이아웃 및 이벤트 처리 같은 WPF 서비스 사용을 프로파일링합니다.

PerforatorVisual Profiler 확인란이 선택되어 있는지 확인하고 **Yes(예)**를 클릭합니다.

Perforator

Perforator는 WPF 응용 프로그램의 렌더링 동작을 분석하기 위한 성능 프로파일링 도구입니다. Perforator 사용자 인터페이스에는 변경된 사각형의 추가 속도 및 프레임 속도와 같이 응용 프로그램의 여러 부분에서 매우 특정한 렌더링 동작을 분석하는 데 사용할 수 있는 그래프 집합이 표시됩니다. WPF에서는 새 렌더링 패스에 변경된 화면 부분만 렌더링됨을 의미하는 변경된 사각형이라는 렌더링 기술을 사용합니다. 또한 Perforator에는 특정 렌더링 문제를 찾는 데 사용할 수 있는 몇 가지 옵션이 있습니다. Perforator 보고 화면에는 소프트웨어 렌더링 대상과 그래프 기간을 제어하기 위한 슬라이더도 표시됩니다. 다음 그림에서는 Perforator 사용자 인터페이스를 보여 줍니다.

Perforator 사용자 인터페이스

Add Tool 대화 상자

Perforator 사용

Perforator를 사용하려면 분석할 WPF 응용 프로그램을 시작합니다. 응용 프로그램이 시작된 후 Perforator 탭을 클릭하고 Actions(작업) 메뉴를 클릭한 다음 **Select Process(프로세스 선택)**를 클릭합니다. Select Process(프로세스 선택) 대화 상자에서 분석할 응용 프로그램 프로세스를 선택하고 **Select(선택)**를 클릭합니다. 그러면 Perforator 탭의 맨 위에 프로세스 이름 및 프로세스 ID가 나타납니다. 분석할 렌더링 옵션을 선택합니다. 프레임 속도와 같은 Perforator 데이터 값은 응용 프로그램의 렌더링 동작을 즉시 반영합니다. 다음 그림에서는 예제를 보여 줍니다.

응용 프로그램 및 렌더링 옵션이 선택된 Perforator

옵션이 선택된 Perforator 주 창

Perforator 그래프

WPF 응용 프로그램을 효율적으로 렌더링하려면 프레임 속도, 변경된 사각형의 추가 속도 및 중간 렌더링 대상의 수를 낮게 유지해야 합니다. Perforator에는 이러한 수준을 모니터링하는 데 유용한 여러 그래프가 있습니다.

다음 표에서는 각 그래프에서 보고되는 메트릭에 대해 설명합니다.

사용 현황 그래프

설명

참고

Frame Rate(프레임 속도)

응용 프로그램에서 화면에 렌더링하는 속도를 보고합니다.

애니메이션이 없는 응용 프로그램의 경우에는 이 값이 0에 가까워야 합니다. 성능이 우수한 응용 프로그램의 애니메이션 중에는 프레임 속도가 모니터의 새로 고침 빈도(대개 60 또는 75)와 비슷해야 합니다.

Dirty Rect Addition rate(변경된 사각형의 추가 속도)

WPF에서 각 프레임에 대해 업데이트해야 하는 사각형 영역의 수를 나타냅니다.

변경된 사각형은 변경된 화면 부분만 렌더링하는 렌더링 기술을 나타냅니다. 값이 높으면 많은 영역이 변경되고 있음을 나타냅니다. 이러한 경우가 반드시 좋다거나 나쁘다고 할 수는 없지만 응용 프로그램의 전반적인 성능을 평가하려면 이 값을 확인하는 것이 좋습니다.

SW IRTs Per Frame(프레임당 SW IRT 수)

응용 프로그램의 한 프레임을 렌더링하는 데 필요한 소프트웨어 IRT(중간 렌더링 대상)의 수를 보여 줍니다.

WPF에서는 IRT를 할당하고 이를 소스 및 대상으로 하여 데이터를 복사해야 하므로 IRT는 리소스 소모가 많은 소프트웨어 화면입니다. 소프트웨어 IRT는 하드웨어 IRT보다 리소스 소모가 많습니다.

IRT는 대개 VisualDrawingBrush, VisualBrush 또는 Opacity 속성을 사용하거나 TileBrush의 타일 모드를 사용할 때 생성됩니다. 이 수가 예를 들어 5 이상으로 높으면 WPF 런타임에서 응용 프로그램을 렌더링하기 위해 많은 작업을 수행하고 있음을 나타냅니다.

하드웨어 가속을 지원하는 컴퓨터에서는 이 수가 0이어야 합니다. 0이 아닐 경우에는 일부 장면이 보다 느린 소프트웨어 파이프라인을 사용하여 렌더링되었음을 나타냅니다.

HW IRTs Per Frame(프레임당 HW IRT 수)

응용 프로그램의 한 프레임을 렌더링하는 데 필요한 하드웨어 IRT(중간 렌더링 대상)의 수를 보여 줍니다.

WPF에서는 IRT를 할당하고 이를 소스 및 대상으로 하여 데이터를 복사해야 하므로 IRT는 리소스 소모가 많은 하드웨어 화면입니다.

중간 렌더링 대상은 대개 VisualDrawingBrush, VisualBrush 또는 Opacity 속성을 사용하거나 TileBrush의 타일 모드를 사용할 때 생성됩니다. 이 수가 예를 들어 5 이상으로 높으면 WPF 런타임에서 응용 프로그램을 렌더링하기 위해 많은 작업을 수행하고 있음을 나타냅니다. 이 경우 앞에서 언급한 요소를 사용하는 모든 코드 영역을 분석해야 합니다.

하드웨어 IRT는 소프트웨어 IRT보다 리소스 소모가 적습니다.

Video Memory Usage(비디오 메모리 사용)

질감 및 렌더링 대상을 위해 WPF에 많은 비디오 메모리가 할당되는지 추적합니다. 이 메트릭은 비디오 드라이버에 대한 메모리 할당이나 픽셀 및 꼭짓점 셰이더를 컴파일하고 로드하기 위한 메모리 할당은 추적하지 않습니다.

질감 메모리의 사용 가능한 크기를 초과하면 일반적으로 WPF 렌더링 논리가 소프트웨어로 대체되며 여러 디스플레이(다중 모니터)를 사용할 경우에는 응용 프로그램에 필요한 비디오 메모리의 크기에 미치는 영향도 비례하여 증가하게 됩니다.

Perforator 렌더링 옵션 및 렌더링 최적화

Perforator를 사용하여 응용 프로그램의 실시간 렌더링 동작에 영향을 주는 다양한 렌더링 옵션을 설정할 수 있습니다. 이러한 옵션을 설정하면 응용 프로그램에서 문제가 돨 수 있는 렌더링 이벤트를 확인할 수 있습니다. 이러한 옵션은 사용자 인터페이스의 아래쪽 부분에 있습니다.

다음 그림에서는 Perforator 렌더링 옵션을 보여 줍니다.

Perforator 렌더링 옵션

Perforator 렌더링 옵션

일반적으로 WPF 응용 프로그램의 성능을 향상시키려면 소프트웨어 렌더링을 최소화하고 중간 렌더링 대상의 수를 줄여야 합니다. 다음 단원에서는 Perforator를 사용하여 이 작업을 수행하는 방법에 대해 설명합니다.

소프트웨어 렌더링 방지

WPF 하드웨어 렌더링 파이프라인은 소프트웨어 렌더링 파이프라인보다 훨씬 더 빠르므로 소프트웨어에서 렌더링하는 응용 프로그램 사용자 인터페이스가 적을수록 해당 응용 프로그램의 렌더링 속도가 빨라집니다. 일반적으로 소프트웨어의 한 영역을 렌더링하는 데 소요되는 시간은 렌더링되는 픽셀 수에 비례합니다. 따라서 큰 영역을 소프트웨어 파이프라인을 사용하여 렌더링하는 데는 신중해야 합니다. 작은 영역은 크게 신경 쓰지 않아도 됩니다.

다음 표에서는 소프트웨어 렌더링 문제를 확인하는 데 유용한 Perforator 옵션을 보여 줍니다.

옵션

설명

참고

Draw software rendering with purple tint(자주색 색조를 사용하여 소프트웨어 렌더링 그리기)

소프트웨어 렌더링 파이프라인을 사용하여 렌더링되는 모든 영역을 자주색 색조로 그립니다. 여기에는 소프트웨어 렌더링 대상, 소프트웨어 3D 콘텐츠 및 기본 형식별 소프트웨어 대체(fallback)가 포함됩니다.

WPF 하드웨어 렌더링 파이프라인은 소프트웨어 렌더링 파이프라인보다 훨씬 더 빠릅니다. 소프트웨어 렌더링이 지나치게 사용되는 것은 대개 문제가 있음을 나타냅니다. 이러한 동작을 야기하는 예로는 Brush의 바둑판식 배열이 과도하거나 비디오 카드의 질감 크기를 초과하는 경우가 있습니다.

Draw software rendered bitmap effects with red tint(소프트웨어 렌더링 방식의 비트맵 효과를 빨강 색조로 그리기)

소프트웨어 렌더링 방식의 레거시 비트맵 효과를 빨강 색조로 그립니다.

소프트웨어 렌더링 방식의 BitmapEffect 클래스는 속도가 느리므로 사용하지 않는 것이 좋습니다. .NET Framework 3.5 SP1에서 추가된 하드웨어 렌더링 방식의 Effect 클래스를 사용해야 합니다.

다음 그림에서는 Draw software rendering with purple tint(자주색 색조를 사용하여 소프트웨어 렌더링 그리기) 렌더링 옵션이 사용된 PhotoDemo 샘플 응용 프로그램을 보여 줍니다.

자주색 색조를 사용한 PhotoDemo

Perforator 렌더링 옵션을 보여 주는 Photodemo 응용 프로그램

업데이트할 영역 모니터링

WPF에서는 창의 필요한 부분만 업데이트하므로 언제든지 업데이트를 시각화하면 유용할 수 있습니다. 일부 경우에는 응용 프로그램에서 애니메이션이 전혀 발생하지 않는데도 영역이 계속해서 업데이트될 수 있습니다. 다음은 업데이트 동작을 시각화하는 데 유용한 옵션입니다. 원격 데스크톱, 가상 컴퓨터 및 이와 유사한 시나리오에서 WPF가 네트워크를 통해 새 비트맵을 보내야 하는 경우에는 불필요한 업데이트가 특히 중요한 문제입니다. 또한 불필요한 업데이트는 랩톱 배터리 수명에도 영향을 줄 수 있습니다.

옵션

설명

참고

Show dirty-region update overlay(업데이트할 영역 업데이트 오버레이 표시)

WPF에 의한 각 화면 업데이트가 다시 칠하기로 표시되도록 합니다. 이렇게 하면 응용 프로그램에서 영역이 다시 그려지는 시기 및 위치를 확인할 수 있습니다.

WPF에서는 필요에 따라 창의 일부만 업데이트하므로 언제든지 업데이트되는 창 부분을 시각화하면 유용할 수 있습니다. 프레임 속도와 변경된 사각형의 추가 속도가 0이 아닌데 응용 프로그램에서 변경되는 시각 요소가 없는 경우에 이 옵션을 사용합니다.

Disable dirty region support(업데이트할 영역 지원 사용 안 함)

변경 내용이 있을 때마다 WPF에서 전체 창을 다시 그리도록 합니다.

이 옵션은 전체 창을 강제로 업데이트할 경우에 유용합니다. 일반적으로는 변경된 창 부분만 다시 그려집니다. 이 옵션을 사용하도록 설정하면 응용 프로그램이 훨씬 더 느리게 렌더링됩니다.

Clear back-buffer before rendering(렌더링 전에 백 버퍼 지우기)

각 그리기 작업 전에 응용 프로그램 창을 지웁니다.

이 옵션은 Show dirty-region update overlay(업데이트할 영역 업데이트 오버레이 표시) 대신 사용할 수 있습니다. 업데이트할 영역의 업데이트 오버레이는 업데이트할 영역의 시간에 따른 변화를 확인하는 데 더 유용한 반면 이 옵션은 가장 최근의 업데이트할 영역을 표시하는 데 효과적입니다.

기타 성능 저하 원인 확인

Perforator에서는 성능에 많은 영향을 주는 일부 작업을 사용하지 않도록 설정하여 이러한 작업이 응용 프로그램에 병목 현상을 일으키고 있는지 여부를 확인할 수 있습니다. 응용 프로그램 프레임 속도를 모니터링하고 이러한 옵션을 개별적으로 선택하면 3D 렌더링이나 이미지 크기 조정 등의 작업으로 인해 렌더링 문제가 발생하고 있는지 여부를 확인할 수 있습니다. 이러한 옵션 중 하나를 선택했을 때 프레임 속도가 급격히 떨어진다면 해당 작업이 응용 프로그램에 병목 현상을 일으키는 원인일 가능성이 높습니다.

옵션

설명

참고

Disable Opacity Effects(불투명 효과 사용 안 함)

성능을 저하시킬 수 있는 불투명도가 사용되지 않도록 설정합니다.

일반적으로 이 성능 문제를 방지하려면 Button과 같은 상위 수준 개체 대신에 Brush와 같은 하위 수준 개체에서 불투명도를 설정하는 것이 좋습니다.

Disable per-primitive software fallback(기본 형식별 소프트웨어 대체(fallback) 사용 안 함)

개별 렌더링 기본 형식에 대해 소프트웨어 대체(fallback)를 사용하지 않도록 설정합니다. 소프트웨어 중간 렌더링 대상 및 기타 소프트웨어 렌더링은 사용하지 않도록 설정할 수 없습니다.

이 옵션은 대부분의 경우에 필요하지 않으므로 선택되지 않은 상태로 둡니다.

Disable high-quality image rescaling(고품질 이미지 크기 조정 사용 안 함)

큰 이미지를 더 작은 크기로 조정하는 기능을 사용하지 않도록 설정합니다.

이렇게 하면 응용 프로그램에서 이미지 크기를 조정할 때의 영향을 확인할 수 있습니다. 이 옵션을 선택했더니 프레임 속도가 매우 낮아진다면 이미지를 표시할 크기에 가까운 크기로 디코딩하는 것이 좋습니다.

Disable 3D rendering(3D 렌더링 사용 안 함)

모든 3D 렌더링 작업을 사용하지 않도록 설정합니다.

이렇게 하면 응용 프로그램에서 3D 렌더링 작업을 수행할 때의 영향을 확인할 수 있습니다.

Visual Profiler

Visual Profiler는 시각적 트리의 요소에 레이아웃, 렌더링 및 애니메이션 같은 WPF 서비스를 적용할 때의 성능을 프로파일링하는 도구입니다. 이 도구의 프로파일링 출력을 분석하여 성능 병목 현상을 일으킬 수 있는 응용 프로그램의 시각적 요소를 확인할 수 있습니다.

Visual Profiler는 응용 프로그램의 시각적 장면을 구성하는 데 사용되는 기본 빌딩 블록의 컨텍스트에서 성능 문제를 표시합니다. 이러한 빌딩 블록에는 ButtonTextBlock 컨트롤과 같은 상위 수준 개체뿐만 아니라 LineEllipse 요소와 같은 하위 수준 개체도 포함됩니다. Visual Profiler에서는 성능 문제를 함수 이름의 호출 그래프를 기반으로 설명하는 대신 시각적 개체 표현을 사용하여 설명합니다. 이는 Windows SDK 도구인 UI Spy에서 정보를 나타내는 방법과 비슷합니다. 자세한 내용은 UISpy.exe (UI Spy)를 참조하십시오.

Visual Profiler 사용

Visual Profiler를 사용하려면 분석할 WPF 응용 프로그램을 시작합니다. 응용 프로그램이 시작된 후 Visual Profiler 탭을 클릭하고 Actions(작업) 메뉴를 클릭한 다음 **Select Process(프로세스 선택)**를 클릭합니다. Select Process(프로세스 선택) 대화 상자에서 분석할 응용 프로그램 프로세스를 선택하고 **Select(선택)**를 클릭합니다. 그러면 Visual Profiler 탭의 맨 위에 프로세스 이름 및 프로세스 ID가 나타납니다.

다양한 WPF 성능 문제를 분석하려면 기본 WPF 서비스의 역할 및 범위를 이해하고 있어야 합니다. 이러한 서비스에는 레이아웃, 렌더링 및 애니메이션이 포함됩니다. Visual Profiler는 응용 프로그램 개체 간에 WPF 서비스가 할당되는 방법에 대한 그래픽 표현을 제공합니다. 예를 들어, Visual Profiler는 응용 프로그램 개체의 시각적 트리를 표시할 경우 개체에서 사용 중인 리소스의 상대적인 양을 나타내기 위해 개체에서 빨간색의 다양한 음영을 겹쳐서 표시합니다. 짙은 빨간색 오버레이로 표시되는 개체는 흐린 빨간색 오버레이로 표시되는 개체에 비해 리소스 사용 비율이 높습니다. 더욱 중요한 사실은 Visual Profiler에서는 개체가 소비하는 특정 WPF 리소스의 양을 세부적으로 보여 준다는 것입니다.

다음 그림에서는 Visual Profiler 사용자 인터페이스를 보여 줍니다.

Visual Profiler 사용자 인터페이스

Visual Profiler 사용자 인터페이스

다음은 Visual Profiler 사용자 인터페이스에 표시되는 8개의 영역입니다.

  1. 요소 트리 검색 상자

  2. 시각적 요소 트리

  3. 요소 정보 및 미리 보기

  4. 요소 전용 CPU 사용량 정보

  5. 응용 프로그램 CPU 사용량 정보

  6. 캡처된 데이터 확대/축소 컨트롤

  7. 사용 현환 그래프 표시 설정

  8. 응용 프로그램 미리 보기 및 성능 오버레이 옵션

다음 단원에서는 각 영역에 대해 설명합니다.

요소 트리 검색 상자

Element Tree(요소 트리) 섹션의 검색 상자에서는 응용 프로그램의 요소 트리에 있는 요소를 검색할 수 있습니다. 검색을 수행하면 일치하는 모든 요소가 노란색으로 강조 표시됩니다. 형식 또는 이름으로 요소를 검색할 수 있습니다.

시각적 요소 트리

Element Tree(요소 트리) 섹션의 트리 컨트롤에는 응용 프로그램에 있는 시각적 요소의 형식 및 이름과 함께 하위 트리 크기 및 레이아웃 정보도 표시됩니다.

다음은 트리에 표시되는 요소 레이블의 예입니다.

Border 'border1' (26) 0.02% (I)/ 0.00 % (E) - .24 ms (I) / 0.00 ms (E)

요소 레이블 구성 요소

설명

Border

요소의 형식입니다.

'border1'

요소의 이름입니다.

(26)

하위 트리 크기입니다.

0.02% (I)

해당 요소 및 하위 요소를 모두 포함하는 전체 트리의 총 크기에 대한 백분율입니다.

0.00 (E)

전체 요소에 대한 해당 요소만의 백분율입니다.

.24 ms (I)

해당 요소 및 하위 요소의 레이아웃 시간(밀리초)입니다.

0.00 ms (E)

해당 요소만의 레이아웃 시간(밀리초)입니다.

포괄/전용 %/시간의 표시 여부를 제어하려면 View(보기) 메뉴를 사용합니다.

하위 트리를 확장하거나 축소하려면 요소를 마우스 오른쪽 단추로 클릭합니다. 실행 부하 과다 경로를 확장할 수도 있습니다. 실행 부하 과다 경로에는 해당 하위 트리에서 CPU를 가장 많이 소비하는 하위 트리 요소가 표시됩니다.

요소 정보 및 미리 보기

Element Information(요소 정보) 섹션에는 현재 선택된 요소의 형식과 이름(요소에 이름이 지정된 경우)이 표시됩니다. 또한 Preview(미리 보기) 섹션에는 요소의 미리 보기가 제공됩니다. 최상위 요소가 선택된 경우에는 응용 프로그램의 미리 보기가 표시됩니다.

요소 전용 CPU 사용량 정보

Element Exclusive CPU Usage(요소 전용 CPU 사용량 정보) 섹션에는 선택된 요소가 소비한 전용 CPU 시간에 대한 시간대별 사용 현황 그래프 및 정보가 표시됩니다. 예를 들어 요소가 레이아웃 정렬, 레이아웃 측정 및 렌더링에 소비한 CPU 시간이 각각 x%, y% 및 z%가 될 수 있습니다.

응용 프로그램 CPU 사용량 정보

Application CPU Usage(응용 프로그램 CPU 사용량) 섹션에는 응용 프로그램 이벤트에 대한 사용 현황 그래프 및 정보가 표시됩니다. Visual Profiler에서는 다양한 응용 프로그램 이벤트를 수신하고 캡처합니다. 응용 프로그램 이벤트는 절대 값으로 표시되며, 사용 현황 그래프에서는 각 응용 프로그램 이벤트에 소요된 시간대별 CPU 시간이 각기 다른 색으로 표시됩니다. 이를 통해 응용 프로그램의 레이아웃 소요 시간과 렌더링 소요 시간을 쉽게 확인할 수 있습니다.

다음 표에서는 그래프에 표시되는 응용 프로그램 이벤트에 대해 설명합니다.

참고참고

WPF에서 메서드 호출에 해당하는 이벤트는 메서드 이름으로 표시되며 그 다음에 클래스 이름이 괄호로 표시됩니다.예를 들어 Tick (TimeManager)은 TimeManager.Tick 메서드를 나타냅니다.

응용 프로그램 이벤트

설명

Unlabeled Time

WPF에서 소요된 시간 중 다른 응용 프로그램 이벤트로 분류되지 않는 시간으로, WPF 외부의 응용 프로그램에서 소요된 총 시간입니다.

RenderMessageHandler (MediaContext)

렌더링 패스가 시작될 때 발생합니다. 특히 이 이벤트는 시간 관리자가 틱할 수 있게 합니다.

Rendering Thread

렌더링 스레드에서 렌더링 명령을 실행할 때 발생합니다. 렌더링 바인딩된 응용 프로그램을 탐지하는 데 유용합니다.

Layout

측정, 정렬 및 렌더링 패스 도중에 발생합니다.

UpdateRealizations

텍스트 및 비트맵 효과의 내부 비트맵 표현을 업데이트할 때 발생합니다.

Tick (TimeManager)

애니메이션이 틱하고 있을 때 발생합니다. 이 이벤트는 애니메이션 렌더링 처리기를 트리거할 수 있습니다.

WPF에서 개체에 애니메이션 효과를 줄 경우 시간 관리자는 시간 표시 막대에 대해 만들어진 Clock 개체를 관리합니다. 시간 관리자는 Clock 개체 트리의 루트이며 해당 트리에서 시간의 흐름을 제어합니다. 시간 관리자는 각 WPF 응용 프로그램에 대해 자동으로 만들어지며 응용 프로그램 개발자에게 표시되지 않습니다. 시간 관리자는 1초에 여러 번 "틱"합니다. 초당 발생하는 실제 틱 수는 사용 가능한 시스템 리소스에 따라 달라집니다.

AnimatedRenderMessageHandler (MediaContext)

애니메이션 처리 및 업데이트에 대해 발생합니다. 애니메이션이 사용되는 경우 이 처리기는 애니메이션을 처리 및 업데이트하여 속성이 변경되고 렌더링이 수행되도록 합니다.

Render (MediaContext)

렌더링 패스 도중에 발생합니다. 이 메서드는 최종적으로 각 요소의 OnRender 메서드를 호출하며, 모든 요소에 대한 OnRender의 총 비용을 파악하는 데 유용합니다. 이 이벤트는 VSP(Visual Studio 프로파일러) 파일의 MediaContext.Render 메서드에 해당합니다.

캡처된 데이터 확대/축소 컨트롤

Graph Options(그래프 옵션) 섹션에는 캡처 데이터 확대/축소 컨트롤이 포함되어 있습니다. 확대/축소 창 핸들을 끌어 Element Exclusive CPU Usage(요소 전용 CPU 사용량) 및 Application CPU Usage(응용 프로그램 CPU 사용량) 사용 현환 그래프의 시간 축을 크기 조정하거나 변경할 수 있습니다.

사용 현환 그래프 표시 설정

Graph Options(그래프 옵션) 섹션에는 사용 현황 그래프 설정을 조정하기 위한 라디오 단추와 슬라이더가 포함되어 있습니다. 라디오 단추를 사용하여 세로 축인 CPU 축의 동작 방식, 즉 절대 값을 표시할지 상대적 가중치를 표시할지 지정할 수 있습니다. 슬라이더는 그래프에 표시되는 최대 값을 설정하는 데 사용합니다.

응용 프로그램 미리 보기 및 성능 오버레이 옵션

Control Options(컨트롤 옵션) 섹션에는 다음 작업을 수행하는 세 가지 토글 단추가 포함되어 있습니다.

  • Visual Profiler 데이터 수집을 일시 중지하거나 시작하려면 첫 번째 토글 단추를 클릭합니다.

  • 응용 프로그램의 실시간 미리 보기를 Preview(미리 보기) 섹션에 표시하려면 Live Preview(실시간 미리 보기) 토글 단추를 클릭합니다.

  • 선택된 시각적 요소 주위에 노란색 테두리를 추가하려면 Overlay Window(오버레이 창) 토글 단추를 클릭합니다. 또한 CPU 시간을 가장 많이 소비하는 요소에는 빨간색 오버레이가 추가됩니다. Element Tree(요소 트리) 섹션의 요소에도 동일한 빨간색이 사용됩니다. 빨간색의 농도는 CPU 사용량과 관련이 있습니다.

참고 항목

개념

WPF 응용 프로그램 성능 최적화

그래픽 렌더링 계층

WPF 그래픽 렌더링 개요

UISpy.exe (UI Spy)

기타 리소스

What's New for Performance Profiling Tools for WPF