2009-10-14 4 views
1

SL 엔터프라이즈 앱 개발에 대한 성능 관련 질문이 있습니다.Silverlight Enterprise 앱 개발에 대한 성능 관련 질문이 있습니다.

- 우리는 ItemsSource 컨트롤에 바인딩하는 10.000 개의 행을 가지고 있습니다. (데이터 바인딩시 총 100.000+ UIElements)

Q1. 다른 스레드에서이 바인딩을 수행하는 방법은 무엇입니까? 바인딩이 발생하는 동안 Silverlight가 멈추기 때문입니다.

Q2 다른 방법으로 ItemsControl에서와 같은 시각적 유연성을 제안 할 수 있습니다.

- 서버에서 총 60MB (압축 해제 된 바이너리 직렬화 된 XML) 데이터를 가져오고 SL 사용자가 20 분 동안이 데이터를 사용하도록합니다.

질문 1. 메모리 누수가 발생하여 메모리에 머물고있는 것이 무엇인지 파악하기가 어려워 졌습니까? 이것을 보여줄 수있는 도구가 있습니까?

최신 테스트에 따르면 UIElements는 메모리를 채우는 테스트입니다. 우리는 5 개의 중첩 된 Itemscontrol을 가지며, 적절한 값을 계산으로 채우기 위해 내부 컨트롤의 많은 "로드 된"이벤트를 추적합니다. 내가 아는 한 가상화는 Items 컨트롤에서 작동하지 않습니다.

시간 내 주셔서 감사합니다.

+0

센 doldurma Denetim의 ItemSource의 nelerdir? O DataGrid mi? – gn22

+0

Ayrıca, İngilizce bir sitedir. İngilizce çevirmek gerekir. – gn22

답변

1

DataGrid를 사용하는 경우 가상화가 기본적으로 설정되어 있어야합니다.

한 번에 많은 양의 데이터를 가져 오면 문제가 발생할 수 있습니다. 나는 서버 측 페이징을 포함하는 일종의 솔루션을 찾으려고 노력할 것이다.

는 편집 :

그냥 당신이 ItemsControl에를 사용하는 것을 보았다. 서버 페이징이 작동하기 전에 가장 큰 성능 향상이 가상화를 작동시키는 것입니다. 여기에 일반화 된 ItemsControl에로 그 일을에 대한 좋은 문서 (또한 이벤트가 제대로 발사되지 함께 문제를 해결)이다 :

http://blogs.claritycon.com/blogs/lee_roth/archive/2009/09/16/custom-panels-in-silverlight-wpf-part-4-virtualization.aspx

관련 문제