提高WPF程序性能的几条建议
这篇博客将介绍一些提高WPF程序的建议(水平有限,如果建议有误,请指正。)
1. 加快WPF程序的启动速度:
(1).减少需要显示的元素数量,去除不需要或者冗余的XAML元素代码.
(2).使用UI虚拟化,只显示当前需要显示的元素.
(3).不要把不要显示的自定义控件隐藏在主界面中,虽然它们不会显示出来,但是程序启动时还是会去计算自定义控件所需的空间和位置.
2. 耗时操作放在放在非UI线程上处理,保持UI的顺畅。处理完成后如果需要在UI上展示,调用Dispatcher.BeginInoke()方法。更多内容参考WPF QuickStart系列之线程模型(Thread Model);
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的性能分析工具就很不错,可以看到可视化树的元素和内存占用情况。
感谢您的阅读。
提高WPF程序性能的几条建议相关推荐
- 提高 Web 应用性能的10条建议
转载:http://www.devstore.cn/essay/essayInfo/6193.html?ref=myread 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长: ...
- system.gc 性能_使用这些先进的GC技术提高应用程序性能
system.gc 性能 应用程序性能是我们关注的重点,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开 ...
- 使用这些先进的GC技术提高应用程序性能
应用程序性能是我们的首要考虑因素,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开发人员和工程师对垃圾收 ...
- 提高DB2数据库Web程序性能的两条规则
速度和可升级性是网络开发重要的性能要求,而且它们也不难达到.应用一些简单的规则会提高网络应用的性能.在本文中,您将了解到使用Borland C#Builder和IBM DB2通用数据库(UDB)8.1 ...
- 如何提升你的能力?给年轻程序员的几条建议
作者:Glow 技术团队 , 责任编辑:帝都羊 http://tech.glowing.com/cn/advices-to-junior-developers/ 0 题记 一转眼工作已有8年,前两天 ...
- [转]如何提升你的能力?给年轻程序员的几条建议
转自 http://tech.glowing.com/cn/advices-to-junior-developers/ 一转眼工作已有8年,前两天公司一位初入职场的同事希望我给一些建议与经验.我觉得这 ...
- 杜克大学教授:提高学术写作水平的10条建议!
本文作者迈克尔·芒格2000年起担任杜克大学政治学系主任,著有<政策分析:选择.冲突和实践><解析政治学>等作品.文章载于<高等教育纪事报>,原标题10 Tips ...
- 10年老兵给程序员的10条建议!
2019独角兽企业重金招聘Python工程师标准>>> 程序员虽然薪资待遇好,但是也得付出努力,技术好才行.特别是对于刚刚进入编程工作的新手程序员和正在学习编程的同学来说,一写代码就 ...
- 10年老兵给程序员的10条建议! 1
程序员虽然薪资待遇好,但是也得付出努力,技术好才行.特别是对于刚刚进入编程工作的新手程序员和正在学习编程的同学来说,一写代码就报错,出bug.作为一个工作了10年+的老兵,总结了下面10条建议送给程序 ...
最新文章
- Android保存图片到数据库,从数据库取图片的方法
- Keepalived + LVS-DR搭建高可用Web服务器集群
- express的app.js的详细配置说明
- 一台古老电脑之维修记
- kail利用msf工具对MS12-020漏洞进行渗透测试
- python第三方模块安装路径_Python第三方Window模块文件的几种安装方法
- linux帆软内存设置,修改FineReport配置参数
- 解决H5在微信浏览器或QQ浏览器修改title的问题
- 14种模式解决面试算法编程题(PART II)
- Invalid bean definition with name ‘dataSourceCSS‘ dfined in class path resource[xxx]
- 【日常小结】VB.NET下操作Access数据库
- (附源码)计算机毕业设计ssm房屋租赁管理系统
- POST参数转为DICT
- Meta-Tracker: Fast and Robust Online Adaptation for Visual Object Trackers
- 2021年12月大学英语六级作文
- 没有鸿蒙HarmonyOS,用这个软件也可以实现华为的多屏协助互动!
- java打印一个空心六边形_六边形架构 Java 实现
- markdown中划线
- [矩阵论] Unit 6. 矩阵的 Kronecker 积与 Hadamard 积 - 知识点整理
- ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)