2015-06-10 23 views
6

gì là nhanh hơn cho một Bộ sưu tập lớn ràng buộc ví dụ,Bộ sưu tập Quan sát cá nhân vs lọc hiệu suất Collection Quan sát

Yêu cầu - ứng dụng e-thương mại:

Giá Blotter - Đó hiển thị Trích dẫn/giao dịch cho chứng khoán khác nhau ví dụ .

Chế độ xem chính - Hiển thị tất cả các trích dẫn.

Chế độ xem quốc gia - hiển thị báo giá/giao dịch cho chứng khoán thuộc một quốc gia cụ thể. Ví dụ. Vương quốc Anh/Pháp, v.v.

Hiện tại - Chúng tôi có bộ sưu tập quan sát cho mỗi chế độ xem và khi giá đến từ máy chủ, chúng tôi gửi một bản sao cho mỗi bộ sưu tập có thể quan sát được dựa trên bộ lọc. Xem quốc gia chẳng hạn.

Câu hỏi: Bộ lọc quan sát được lọc có hoạt động tốt hơn mô hình này mặc dù CollectionViewsource sẽ yêu cầu làm mới khi giá được thêm/Đã xóa. Việc làm mới nguồn CollectionView có thêm bất kỳ hình phạt hiệu suất nào không.

Ví dụ ở trên chỉ để tham khảo, có thể có tới 20 lượt xem khác nhau và khoảng 20-50K, với mức giá độc đáo 5-6K mỗi mức có chiều sâu rất lớn trong ngày. Ứng dụng có nhu cầu cao về hiệu năng GUI.

Tôi đang lên kế hoạch thay thế Datagrid hiện tại bằng Tableview trọng lượng nhẹ, tự hỏi liệu một bộ sưu tập chính có thể quan sát cũng sẽ giúp ích hay không.

Rất cám ơn bạn đã nhập.

+0

Bạn muốn người dùng mở bao nhiêu chế độ xem tại bất kỳ thời điểm nào? Nếu bạn có một bộ sưu tập chính có thể quan sát và bạn thêm/xóa một mục khỏi bộ sưu tập, thì ** tất cả các tham chiếu đến bộ sưu tập đó sẽ cập nhật phần tử được liên kết của chúng. Giả sử bạn có 20 lượt xem mở, đó là 20 cập nhật giao diện người dùng mà bạn phải làm việc. –

+0

Giả sử - Tất cả 20 lượt xem. Blotter là một điều khiển với mỗi chế độ xem dưới dạng Tab. Tất cả các tham chiếu đến chế độ xem sẽ cập nhật các phần tử bị ràng buộc là tốt - Nhưng Bộ sưu tập "Bộ lọc" cơ bản sẽ có các bản ghi được lọc, không? ví dụ: Master Observable Collection có 5 hồ sơ (Anh, Đức, Mỹ, Tây Ban Nha, Ý) - Chế độ xem chính hiển thị tất cả 5, UK Hiển thị 1 và cứ tiếp tục như vậy. Phần tử mới được thêm vào (Anh), Thạc sĩ sẽ có 6, và Vương quốc Anh sẽ có 2, số khác vẫn trống và vân vân. Hiện đang đạt được bằng cách sử dụng mỗi chế độ xem có tuyến đường riêng của lớp Nhắn tin ObS Col. Để xem thích hợp dựa trên Quốc gia và Loại chế độ xem, Chỉ cần ví dụ. –

+0

Bạn đã thử sử dụng một ICollectionView (s) để hiển thị một đại diện được lọc của bộ sưu tập quan sát duy nhất của bạn.Với ảo hóa được bật trên hiệu suất kiểm soát giao diện người dùng của bạn sẽ tốt ngay cả với nhiều dữ liệu. – kenjara

Trả lời

0

Refreshes trên CollectionViewSource có thể rất xấu cho hiệu suất vì nó sẽ gây ra các mặt hàng và container hàng theo quan điểm của bạn được tái sinh (xem liên kết trong câu tiếp theo để tham khảo). Đây là toàn bộ lý do có Editable Collections trong WPF. Tôi đã triển khai các bộ sưu tập có thể sửa đổi lớn cho một sản phẩm một lần và tôi không bao giờ gặp phải vấn đề hiệu suất khi tôi đang sử dụng IEditableCollectionView mặc dù điều đó không có nghĩa là nó có thể không đủ nhanh cho ứng dụng của bạn.

Tôi đoán là nếu bạn đang sử dụng IEditableCollectionView thì sẽ không thành vấn đề nếu bạn chia bộ sưu tập hoặc giữ tất cả lại với nhau trong một bộ sưu tập khổng lồ với các bộ lọc khác nhau được áp dụng.

Các vấn đề liên quan