2011-02-16 4 views
0

이것은 마일리지가 다를 수 있다고 생각하기 때문에 일종의 비 객관적인 질문입니다. 그러나 컨트롤 템플릿 (내 페이지의 리소스 섹션에 선언되어 있습니다.) 또는 UserControl을 사용하면 최상의 성능을 얻을 수 있습니까?WPF 성능 : 템플릿 대 UserControl

내가 묻는 이유는 WPF (테이블 그리드를 만드는 데 5000 개 이상의 컨트롤을 사용하는 것)와 성능 문제가 있었기 때문에 내가 성능을 향상시키기 위해 한 일은 페이지의 하나의 컨트롤 템플릿 (그리드 내에서 하나의 행을 나타냄)을 UserControl으로 변환하는 것이 더 나은 성능을 가져올 것으로 예상됩니다. 그러나 코드를 프로파일 링 한 후에, 필자는 실제로 성능을 잃어버린 사실을 알게되었습니다. 그리 많지는 않지만 이전 코드로 돌아갈 정도로 충분합니다.

누구든지이 문제에 대해 통찰력을 갖고 있습니까?

답변

3

질문에 대한 답변이 없습니다. 그러나 5000 개의 컨트롤이있는 그리드는 겁나는 소리를냅니다. VirtualizingStackPanel과 같은 가상화 기술을 사용하려고하므로 컨트롤이 재활용되고 필요할 경우에만 생성됩니다 (가능한 경우).

this 게시물을 통해 아이디어를 얻을 수 있습니다.

+0

또한 재활용 옵션을 사용하면 표시되는 컨테이너 수만 유지됩니다. MSDN 설명 http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizationmode.aspx – baalazamon

+0

글쎄, 아마도 내 첫 번째 질문이 있어야합니다. 나는 사용자가 그런 시나리오를 만들 것을 기대하지 않았다. 나는 이미 500 라인이 넘을 것으로 생각했다. –