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

应用程序时间线(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工具。

时间: 2024-10-09 11:12:20

WPF性能调试系列 – 应用程序时间线的相关文章

【转】WinDbg调试器:启动程序时自动连接调试器方法

当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options路径下: 第二步:在Image File Execution Options上鼠标右键,新建"项",项名为你要调试的程序,比如 test.exe: 第三步:在项名上,右键,新建字符

使用pdb调试pygame的程序时遇到了界面问题

遇到了界面问题.无法进行一切正常操作.除了能够看见一个鼠标.此时无法退出全屏模式. 解决办法是使用以下命令: systemctl restart lightdm.service 重启dm后,浏览器进程还在.libreoffice提醒恢复. 可见这个gnu/linux操作系统还是挺健壮的.

Windows程序调试系列: 使用VC++生成调试信息 转

Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,[email protected], 译自 “Generating debug information with Visual C++”,Oleg Starodumov 出处: http://www.cnblogs.com/itrust/archive/2006/08/17/479603.aspx 引子 当我们使用调试器来调试程序时,我们希望能够单步调试到源代码中,在代码中设置断点,观察变量的值(包括用户自定义的复杂类型的

WPF中的动画——(三)时间线(TimeLine)

时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下几种TimeLine: AnimationTimeline?:前面已经介绍过,主要用于属性的过渡,这种是最常见的动画. MediaTimeline:用于控制媒体文件播放的时间线. ParallelTimeline:ParallelTimeline?是一种可对其他时间线进行分组的时间线,可用于实现较复杂的动画. Storyboard?:一种特殊的?Pa

VS2010远程调试你的程序vc++/wpf/C#/MFC

VS2010远程调试你的程序vc++/wpf/C#/MFC 1 背景说明 在进行设备控制软件开发的时候,需要进行设备的上机调试.我们在安装了工作环境(VS2010+Access+流程图等软件)的电脑上编码写好待调试的软件之后,待机器零配件和电气安装好之后,再在设备上进行调试,这个时候,设备会自带自己的工控电脑,这个工控电脑没有安装代码调试的软件.一般的解决办法是,将开发所需要的所有软件在目标工控机上再安装一遍,然后将代码拷贝到目标机,然后在目标机上修改代码和调试代码.这样做有一下几个缺点. (1

针对 Linux 环境下 gdb 动态调试获取的局部变量地址与直接运行程序时不一致问题的解决方案

基础的缓冲区溢出实践通常需要确定运行状态下程序中的某些局部变量的地址,如需要确定输入缓冲区的起始地址从而获得注入缓冲区中的机器指令的起始地址等.在 Linux 环境下,可通过 gdb 对程序进行动态调试,从而获得程序运行状态下的信息( 关闭 ALSR 机制 ),基础的 gdb 操作可参见笔者的文章Linux下编辑.编译.调试命令总结--gcc和gdb描述.使用 gdb 可以方便的获取程序动态运行状态下的信息,但通过 gdb 动态调试获取的诸如缓冲区的起始地址等信息可能与程序实际运行时的信息并不相

WPF中的动画——(三)时间线(TimeLine)(转)

WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下几种TimeLine: AnimationTimeline :前面已经介绍过,主要用于属性的过渡,这种是最常见的动画. MediaTimeline:用于控制媒体文件播放的时间线. ParallelTimeline:ParallelTimeline 是一种可对其他时间线进行分组的时间线,可用于实现较复

WPF入门教程系列(一) 创建你的第一个WPF项目

WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础了. 2) HTML语言:虽然WPF是窗体程序但是由于使用的XAML语言,如果以前接触过HTML.XHTML.ASP.NET之路的东西的话会,接受这些标签会很有帮助的,如

Android性能优化系列之apk瘦身

Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容. 包体分析 在Android Studio工具栏里,打开build–>Analyze APK, 选择要分析的APK包 可以看到占用空间的主要是代码.图