2013-03-21 1 views
11

변동이 심한 응용 프로그램에서 WPF는 레이아웃/렌더링주기를 어떻게 최적화합니까?WPF는 레이아웃/렌더링주기를 어떻게 최적화합니까?

예를 들어, 사용자 지정 컨트롤을 두 번 빠르게 연속해서 무효화하면 두 번 렌더링됩니까? 데이터/속성 업데이트 속도가 주 렌더링 속도보다 빠를 때 성능 문제가 있습니까?

답변

7

내 경험에 비추어 볼 때, 빠른 속도라면 두 번 렌더링하지 않을 것이라고 말할 수 있습니다. 나는 100 % 확실하지는 않지만 이것이 내가 생각하는 이유입니다 :

우리는 정말 무거운 응용 프로그램 (수천 개의 제어 장치)을 가지고 있었고, 항공기 조종실이었고, 모든 wpf, 각 버튼, 스위치, 스크린은 제스처 또는 마우스로 움직일 수 있습니다.

조종실은 10,000 픽셀 x 10,000 픽셀이었고 마우스 오른쪽 버튼을 클릭했을 때 패닝 (panning)하는 줌 인/줌아웃 (마우스 휠 사용)을 구현했습니다. 나는 1 시간을 확대하는 경우

최적화하기 전에, 천천히, 아주 랙이, 그래서 각각의 "줌"단계, 또는 "팬"단계는했다 약 1 초

는 (줌 * 예를 들어 1.2), 그것은 일을했다 두 번째

10 배 (줌 * 1.2 X 10)를 10 배로 확대하면 스크롤하는 속도에 따라 2 초 정도 걸리며 렌더링 할 때마다 "확대 단계"가 렌더링되지 않습니다. 최후의 것 ...

+0

와우 .... 10k x 10k ... 줌과 수천 개의 컨트롤 ... 그건 괜찮은 UI입니다. –

+1

종류의 것은 나를 조금 두려워하게 만듭니다. 비행기 ... – Charleh

+0

이 조종석은 기본적인 훈련에만 사용됩니다. 실제 조종없이 조종실로 '탐색'하고, 교사가 패널을 설명하고, 마녀 버튼을 설명 할 때 훈련 수업에 사용되며 ... 완전한 시뮬레이션 – mlemay