Recent Posts
Recent Comments
Link
관리 메뉴

NaggingMachine

WPF에서 데이터바인딩 시에 어떻게 최적화할 것인가? 본문

Visual Studio

WPF에서 데이터바인딩 시에 어떻게 최적화할 것인가?

naggingmachine 2009. 2. 20. 07:00
출처: MSDN 성능 최적화 : 데이터 바인딩

source: MSDN

WPF에서 데이터바인딩은 다양한 형태로 처리할 수 있습니다. 그리고 어떤 방식을 사용하느냐에 따라 처리 속도에도 큰 영향을 미치게 됩니다. 혹시나 여러분도 저처럼 그저 편한대로, 익숙한대로 데이터바인딩을 처리해 왔다면 한번쯤은 성능 최적화에 대해서 고민해볼 필요가 있겠습니다.

여러분은 1000개의 속성을 가지는 하나의 CLR 개체를 바인딩하는 것1개의 속성을 가지는 1000개의 CLR 개체를 바인딩 하는 것중 어느것이 더 성능에 악영향을 미친다고 생각하십니까? 후자가 바인딩 시간은 무려 8배, 렌더링 시간은 약 4배 정도로 빠르다는 사실. 알고 계셨는지요? (저는 몰랐었네요. ^^;;)

사실 저정도의 성능 차이가 나는 이유가 언뜻 이해되지는 않지만, 내부적인 구조 때문인것으로 보입니다.

1000 개의 TextBlock 개체의 데이터 바인딩

바인딩 시간 (ms)

렌더링 시간 -- 바인딩 포함 (ms)

1000 개의 속성을 가지는 1 개의 CLR 개체에 바인딩

950

1200

1 개의 속성을 가지는 1000 개의 CLR 개체에 바인딩

115

314


전반적으로 바인딩 시간이 생각보다 굉장히 오래 걸린다는 사실을 수치를 통해 다시한번 확인할 수 있었습니다. .NET이 제발 더 최적화되었으면 하는 바램입니다. ^^