다음을 통해 공유


성능 최적화: 기타 권장 사항

이 항목에서는 WPF 응용 프로그램 성능 최적화 단원의 항목 내용에 추가되는 성능 권장 사항을 제공합니다.

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

  • 브러시의 불투명과 요소의 불투명 비교

  • 개체 탐색

  • 대형 3차원 화면에서의 적중 테스트

  • CompositionTarget.Rendering 이벤트

  • crollBarVisibility=Auto 사용 안 함

  • 시작 시간을 줄이도록 Font Cache Service 구성

브러시의 불투명과 요소의 불투명 비교

Brush를 사용하여 요소의 Fill 또는 Stroke를 설정하는 경우 요소의 Opacity 속성을 설정하는 것보다 Brush.Opacity 값을 설정하는 것이 더 좋습니다. 요소의 Opacity 속성을 수정하면 WPF에서 임시 화면을 만듭니다.

개체 탐색

NavigationWindow 개체는 Window에서 파생되고 주로 NavigationService 및 저널을 집계하는 콘텐츠 탐색 지원을 통해 확장됩니다. uniform resource identifier (URI) 또는 개체를 지정하여 NavigationWindow의 클라이언트 영역을 업데이트할 수 있습니다. 다음 샘플에서는 이러한 두 가지 방법을 보여 줍니다.

        Private Sub buttonGoToUri(ByVal sender As Object, ByVal args As RoutedEventArgs)
            navWindow.Source = New Uri("NewPage.xaml", UriKind.RelativeOrAbsolute)
        End Sub

        Private Sub buttonGoNewObject(ByVal sender As Object, ByVal args As RoutedEventArgs)
            Dim nextPage As New NewPage()
            nextPage.InitializeComponent()
            navWindow.Content = nextPage
        End Sub
private void buttonGoToUri(object sender, RoutedEventArgs args)
{
    navWindow.Source = new Uri("NewPage.xaml", UriKind.RelativeOrAbsolute);
}

private void buttonGoNewObject(object sender, RoutedEventArgs args)
{
    NewPage nextPage = new NewPage();
    nextPage.InitializeComponent();
    navWindow.Content = nextPage;
}

NavigationWindow 개체에는 해당 창에서의 사용자 탐색 기록을 기록하는 저널이 있습니다. 저널의 목적 중 하나는 사용자가 사용자의 단계를 다시 수행할 수 있도록 하는 것입니다.

uniform resource identifier (URI)를 사용하여 탐색하면 저널에서는 uniform resource identifier (URI) 참조만 저장합니다. 이는 페이지를 다시 방문할 때마다 동적으로 다시 구성하기 때문에 페이지가 복잡할 경우 많은 시간이 걸릴 수도 있습니다. 이 경우 저널 저장 비용은 낮지만 페이지를 다시 구성하는 시간이 많이 걸릴 수 있습니다.

개체를 사용하여 탐색하면 저널에서는 개체의 전체 시각적 트리를 저장합니다. 즉, 페이지를 다시 방문할 때마다 페이지를 다시 구성하지 않고 바로 렌더링합니다. 이 경우 저널 저장 비용은 높지만 페이지를 다시 구성하는 시간이 줄어듭니다.

NavigationWindow 개체를 사용하는 경우에는 저널링 지원이 사용자 응용 프로그램의 성능에 미치는 영향에 대해 고려해야 합니다. 자세한 내용은 탐색 개요를 참조하십시오.

대형 3차원 화면에서의 적중 테스트

대형 3차원 화면에서의 적중 테스트는 CPU 사용 면으로 볼 때 성능에 영향을 미치는 작업입니다. 3차원 화면에 애니메이션 효과를 주는 경우 특히 더 영향을 미칩니다. 이러한 화면에서 적중 테스트가 필요 없는 경우에는 적중 테스트를 해제하십시오. UIElement에서 파생된 개체는 IsHitTestVisible 속성을 false로 설정하여 적중 테스트를 해제할 수 있습니다.

CompositionTarget.Rendering 이벤트

CompositionTarget.Rendering 이벤트는 WPF에서 계속 애니메이션 효과를 주도록 합니다. 이 이벤트를 사용하는 경우 상황에 따라 이 이벤트를 분리하십시오.

crollBarVisibility=Auto 사용 안 함

가능하면 HorizontalScrollBarVisibility 및 VerticalScrollBarVisibility 속성에 ScrollBarVisibility.Auto 값을 사용하지 마십시오. 이러한 속성은 RichTextBox, ScrollViewerTextBox 개체에 대해 정의되고 ListBox 개체의 연결 속성으로 정의됩니다. 대신 ScrollBarVisibilityDisabled, Hidden 또는 Visible로 설정하십시오.

Auto 값은 공간이 제한되어 스크롤바가 필요한 경우에 사용합니다. 예를 들어 텍스트 100줄을 제공하는 TextBox보다 30개 항목의 ListBox를 제공하는 이 ScrollBarVisibility 값을 사용하는 것이 더 좋습니다.

시작 시간을 줄이도록 Font Cache Service 구성

WPF Font Cache 서비스는 WPF 응용 프로그램 간에 글꼴 데이터를 공유합니다. 서비스가 실행되고 있지 않은 경우 처음 실행하는 WPF 응용 프로그램에서 이 서비스를 시작합니다. Windows Vista를 사용하면 "Windows Presentation Foundation (WPF) Font Cache 3.0.0.0" 서비스를 "수동(기본값)"에서 "자동(지연된 시작)"으로 설정하여 WPF 응용 프로그램의 초기 시작 시간을 줄일 수 있습니다.

참고 항목

개념

응용 프로그램 성능 계획

성능 최적화: 하드웨어 이용

성능 최적화: 레이아웃 및 디자인

성능 최적화: 2차원 그래픽 및 이미징

성능 최적화: 개체 동작

성능 최적화: 응용 프로그램 리소스

성능 최적화: 텍스트

성능 최적화: 데이터 바인딩

애니메이션에 대한 유용한 정보