WPF性能调试系列文章:
WPF页面渲染优化:Application Timeline
WPF页面业务加载优化:Ants Performance Profiler
应用程序时间线(Application Timeline)
应用程序时间线工具是VS2015新添加的功能,通过对WPF程序的检测,可以分析应用程序消耗的时间包含用户界面框架、服务网络和磁盘请求、程序启动及页面加载。此处重点介绍程序加载和页面加载的时间性能分析。
模拟分析应用程序
打开VS2015,通过菜单分析(N)-> 性能探测器(F)打开分析器,在可用工具中选择应用程序时间线。
注: 1. 不同版本的VS菜单名称可能不相同,上图为VS2015企业简体中文版,根据路径选择具体菜单
2. 分析目标为WPF应用程序可以选择‘应用程序时间线’,不要在包含其他类型的应用程序的项目中打开,会造成此项不可选
开始执行后,wpf应用会打开执行,当需要检测的页面加载完成后可以关闭wpf应用,等待VS自行分析结束后,会输出分析结果。
磁盘和网络活动:频繁的磁盘访问和网络负载在UI线程可能会严重影响应用程序的响应。即使其中的一些I / O访问发生在一个不同的线程上,它仍然可能会影响应用程序的感知响应。这些事件将详细的总的有效载荷和时间花费在服务的I / O请求。
XAML文件加载的分析时间包含:布局,解析和呈现部分的分析
布局:比较大型应用中可能会有巨大数量的元素同一时间在页面上显示,这就导致了应用程序页面的低响应速度。布局详细的标明每个元素的加载成本。通过找到具体某个低响应速度的控件进行优化。
解析:这一事件能够识别由UI线程在解析XAML文件和创建对象的时间。这能够在性能瓶颈的情况下识别不必要的文件解析和对象创建,并优化它们。
呈现:具体页面控件呈现在显示器所需要的时间,此部分一般无需做为优化所需要考虑的范畴。
举例查找页面加载的性能瓶颈:
通过页面加载的时间线,发现一个自定义控件的解析时间需要356.85毫秒,远远超过了其他页面的加载时间,现在需要直接进入自定义控件进行页面复杂度分析
查看页面察觉到使用到了页面比较耗性能的Chart图表控件,这种情况就可分析真实业务需求,是否可以通过其他控件代替?或和用户做对应的技术讲解?等等。
上面是VS2015中应用程序时间线的使用方法,主要用于检测UI层性能瓶颈。关于数据访问层和业务逻辑层的瓶颈可使用大名鼎鼎的ANTS Performance profiler工具。