WPF性能调试系列 – 应用程序时间线

Posted WantJing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF性能调试系列 – 应用程序时间线相关的知识,希望对你有一定的参考价值。

WPF性能调试系列文章:

    WPF页面渲染优化:Application Timeline

    WPF页面业务加载优化:Ants Performance Profiler  

    WPF内存优化:Ants Memory 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工具。

以上是关于WPF性能调试系列 – 应用程序时间线的主要内容,如果未能解决你的问题,请参考以下文章

WPF 卡顿调试经验

WPF 卡顿调试经验

WPF中应用字体图标

Webpack 性能优化系列 - oneOf

WPF 动画/UI 功能性能和基准测试

WPF -- 应用启动慢问题