zoukankan      html  css  js  c++  java
  • WPF中ItemsControl绑定到Google ProtocolBuffer的结构体时的性能问题

    背景:
    最近遇到一个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的结构体。

  • 相关阅读:
    javascript 数字格式化
    spring-cloud blogs
    rabbitmq python
    centos7下 安装mysql
    hue install
    d3 document
    elastichq 离线安装
    elasticsearch agg
    elastichq auto connect
    Go Hello World!
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3668446.html
Copyright © 2011-2022 走看看