博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
提高WPF程序性能的几条建议
阅读量:6841 次
发布时间:2019-06-26

本文共 902 字,大约阅读时间需要 3 分钟。

原文:

这篇博客将介绍一些提高WPF程序的建议(水平有限,如果建议有误,请指正。)

1. 加快WPF程序的启动速度:

(1).减少需要显示的元素数量,去除不需要或者冗余的XAML元素代码.

(2).使用UI虚拟化,只显示当前需要显示的元素.

(3).不要把不要显示的自定义控件隐藏在主界面中,虽然它们不会显示出来,但是程序启动时还是会去计算自定义控件所需的空间和位置. 

2. 耗时操作放在放在非UI线程上处理,保持UI的顺畅。处理完成后如果需要在UI上展示,调用Dispatcher.BeginInoke()方法。更多内容参考;

3. 关于Data Binding,根据实际情况对Binding指定不同的Mode,性能OneWay优于TwoWay。另外修正掉系统中Binding错误,可以在Visual Studio的输出日志中查找System.Windows.Data Error;

4. Resources: 系统资源,通常情况下我们会把样式资源都统一到App.xaml中,这是很好的,便于资源的管理。不过尽量把多次重复用到的资源放到App.xaml中。例如某些页面的资源只会在当前页面中使用到,那么可以把资源定义在当前页面; 如非必要,不要使用DynaicResource,使用StaticResource即可;

5. 对Item类型控件重写时,使用VirtualizingStackPanel作为ItemPanel,这样列表资源可以只渲染当前需要的内容。不过如果设置CanContextScrol="True"会阻止虚拟化,另外使用VirtualizingStackPanel时,可以设置VirtualizingStackPanel.VirtualizationMode="Recycling", 这样已经显示过的列表不会被重复创建和释放掉。

6. 尽量少的使用Animation,尤其在程序启动时,Animation渲染时会占用一些CPU资源。

大概就这些。另外遇到性能问题时,可以使用一些工具来分析,VS 2015的性能分析工具就很不错,可以看到可视化树的元素和内存占用情况。

感谢您的阅读。

转载地址:http://dfkul.baihongyu.com/

你可能感兴趣的文章
[剑指offer] 变态跳台阶
查看>>
首次公开!阿里搜索中台开发运维一体化实践
查看>>
面象对象设计6大原则之四:接口隔离原则
查看>>
Ansible介绍、安装、远程执行命令、拷贝文件或者目录、远程执行脚本
查看>>
异常中要了解的Throwable类中的几个方法
查看>>
【前端,干货】react and redux教程学习实践(二)。
查看>>
Fiddler 抓包浅析(二)
查看>>
Ant + Tomcat + Jenkins 实现自动化部署
查看>>
奥迪明年将在美推出汽车共享车队
查看>>
万达网络首席架构师:回复雷盈CEO,致敬区块链创业者!
查看>>
阿里达摩院布局“中国芯”,自研AI芯片性价比超同类40倍
查看>>
ShowDoc v2.4.10 发布,IT 团队的在线 API 文档工具
查看>>
Macaca入门篇(iOS)
查看>>
甲骨文宣布开源 GraphPipe,一种机器学习模型的新标准
查看>>
使用Eclipse开发Java应用并部署到SAP云平台SCP上去
查看>>
区块链:重新定义世界,崛起于草根的“颠覆性”技术
查看>>
为保证太空超级计算机可长期使用,惠普宣布已成功为其加电
查看>>
SqlMap 初尝试
查看>>
Python学习笔记-邮件模块SMTP
查看>>
限制优化时间和事件数的最佳方法
查看>>