首页 > 其他 > 详细

WPF中ItemsControl绑定到Google ProtocolBuffer的结构体时的性能问题

时间:2014-04-09 19:03:05      阅读:290      评论:0      收藏:0      [点我收藏+]
背景:
最近遇到一个DataGrid的性能问题:里面大概有4000个数据, 绑定的ItemSource的类也只有一层数据,即简单的List(里面每个是Protocol Buffer自动产生的一个类,10个字段,没子类或者子列表),这么简单的数据源在一台测试机上全选4000条数据然后一直点击滚动条滚动会导致UI卡死, 整个界面无法工作。

其中:
1.所有的虚拟化相关的都已经设置
2.去掉了自定义的style,使用原生的style,
3.数据源的层次结构也简单,数据量也不大。

出现这个问题让我很意外,用windbg分析过卡死时的dump文件,就是界面卡死,没有异常。自己用blend做了一个模拟数据源,10000条数据都妥妥的。后来有使用了多线程UI,把当前DataGrid放在另外一个单独线程, 还是卡死。数据源的初始化等等都没有关系,因为是显示完成后全选拖动造成。

问题原因:
是google protocol Buffer产生的类有导致性能问题, 


解决方法:
重新定义类来包装protocol buffer的结构体。

WPF中ItemsControl绑定到Google ProtocolBuffer的结构体时的性能问题,布布扣,bubuko.com

WPF中ItemsControl绑定到Google ProtocolBuffer的结构体时的性能问题

原文:http://blog.csdn.net/muzizongheng/article/details/23264493

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!