阅读 71

WPF性能优化

一、性能优化过程中,内存和耗时情况的计算方式:

  内存使用情况的获取,使用GC.GetTotalMemory(true);

  耗时使用情况的获取,使用Stopwatch计算;

二、优化途径

  1.  控件虚拟化属性,抽象类VirtualizingPanel,例如某些现有的属性VirtualizingStackPanel.IsVirtualizing="True";

  2. 数据结构的选型,List和Dictionary,大数据量情况下,Dictionary通过key查找很快,TryGetValue比先判断Contains再取值快一倍。List.BinarySearch()性能比List.IndexOf()要高很多。

  3. 算法优化,比如说公式解析中, 求五日均线,for循环内嵌小循环,O(n^2);通过对业务的熟悉,优化为O(n), 5日数据总合减去队列第一个值,队列再加一个值,计算总数合平均值。

  4. Cache,对于常用数据进行预加载,后期使用直接内存中取已经加载和处理好的数据;这里需要注意数据的更新和通知。

  5. 对象池。

  6. Lazy 初始化的时候不会执行构造,调用属性值的时候会初始化执行构造函数; 还有属性懒加载,public A AA{ get{ if(aa==null) aa=new A(); return aa;}}。

  7. 异步加载,在程序运行时候,后台可以同时异步加载数据或者更新数据,加载完毕之后对数据进行处理,最后通知前端更新。

  8.少用反射,不是说不用。在批量处理过程中尽量不要用反射;

  9. IPropertyChanged接口实现里面,尽量不要用Lambda表达式;

 

原文:https://www.cnblogs.com/znfq/p/14287194.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐