




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AQTime使用指南AQTime是AutomatedQA公司开发的一个Code Profiler工具,功能非常强大,是Sys-Con Magzine 2004 Readers Choice ,Code Profiler for .net类的冠军得主。一个简单示例启动AQTime,选择File|New Project,然后在Setup页签从右键菜单中选Add Module。加入一个要准备进行分析的可执行程序,然后选Run:弹出的界面不用更改,继续选Run:程序执行完毕退出后,AQTime中就能看到本次运行的统计结果了:界面下方有多个分析视图:配置AQTime控制分析范围AQTime缺省会分析所有.net代码,如果想控制分析范围,主要有两种方式。使用EnvironmentOptions从该对话框中选中Exclude routines with no source info。这将控制AQTime只分析哪些带有pdb文件且pdb文件包含了源代码信息的程序集。这是一个比较方便的选项,一般情况下用这个选项效果就可以了。注意,该选项仅当Setup页签上的Profile Entire .NET Code by Routines选项关闭时才起作用。使用Area而如果要想控制任意精细的程度,则需要用到Area。首先,要先Add一个Area:Add了Area后,再定义哪些代码归入到这个Area中。可以从Modules列表中把项目拖过来,也可以从右键菜单中选Add Seleted to Area:例如我们想分析UBF持久化相关代码,可以先把相关的dll添加到了Modules列表中,然后Add到刚才创建的Area中。这里既可以选择整个dll,也可以选择其中的具体类型,甚至是某个方法,粒度可以非常细。Area分Including和Excluding两类,某些代码不想Profiler的话,可以把它扔到一个Excluding的Area中去。根据需要,可以建立任意多个Area。控制分析粒度由Area的Level属性决定,一般选择Routine,统计到方法级;选Line会到代码级,AQTime会给出每一行的执行情况,但这会使Profiler运行过程变得较慢。一般的技巧是大致确定问题范围后,再使用Line级详细跟踪分析。控制分析过程AQTime缺省会分析整个程序运行的过程。如果想分析某个时间段的执行状况(例如分析某对话框的某个按钮按下时的执行状况),可以通过关闭及开启Profiling来实现。在Run命令运行前,先选择Disable Profiling按钮,关闭AQTime的统计跟踪功能:当该对话框打开,准备按下按钮前,打开AQTime的统计跟踪功能:按钮对应的功能执行完成后,按下Get Results按钮取这段时间的运行结果:分析运行结果Report列表这个列表给出了各个方法的执行情况统计。可以对列表按列排序,可以做分组,可以指定显示哪些列等:可以过滤:还可以把感兴趣的方法加入到Area中,以便进一步分析:Editor/Disassembler源码或IL代码中可直接看到执行情况。Details看到某一方法调用的子方法情况和调用它的父方法情况。Call Graph图形方式展现的调用链。Call Tree树状展现,会自动把子方法中消耗最大的提前。双击可将选中的方法置顶。这个分析视图最为有用。Results View使用More than 3%方式,能帮助快速过滤出主要可能存在问题的方法。主要的统计项目Time方法自身消耗时间Time with Children方法自身及其调用的子方法合计消耗时间HitCount方法调用次数First Time方法首次调用时,自身消耗时间First Time with Children方法首次调用时,自身及其调用的子方法合计消耗时间Average Time方法自身消耗时间的平均值Average Time with Children方法自身及其调用的子方法合计消耗时间的平均值Shared Time这是Time占Time with Children的比率一般会主要关注Time with Children和HitCount,再配合Time和First Time with Children。部分方法属于单例方法和带缓存能力,观察First Time with Children这个统计项可以明确其效果。其它多种profiler方式除性能分析外,还支持内存分配分析、代码覆盖率分析、静态分析等方式。时间刻度可调Summary页面这里也可以帮您快速定位可能有性能问题的方法集成到Vstudio中安装AQTime后,Vstudio中多出一个Profile菜单,可选Add AQTime Project,创建一个AQTime类型的Solution:然后加入Module,定义Area等:本例用了一个Nunit测试类,并用nunit-gui.exe作为宿主程序。执行完毕后,即可看到结果。使用过程基本同独立的AQTime,只是内嵌到了Vstudio中而已,不是真正的集成概念。分析示例这是对UBF进行性能分析时发现的一个问题:我们观察到ValueManager从一个DataReader读取数据的过程中,访问Entity元数据的Keys属性相当消耗时间。展开下去,可以看到最终使用了反射技术来创建Keys元数据。Entity元数据是稳定的,其包含的Keys元数据不应该每次创建啊?来查看一下实现代码:还果真如此!显然这里应增加一个_Keys变量,存储首次计算结果。象这类问题,是非常小的代码实现问题,就是当时写程序时一下疏忽了。但如果不使用AQTi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同协议加工订货合同7篇
- 2023年高考全国乙卷数学(理)真题(解析版)
- 厨具安装合同范本
- 中外合资经营合同
- 北京技术合同范本
- 出口合同范本 fob
- 单位投资合作合同范本
- 有机化学模拟考试题+参考答案
- 农艺工高级模拟题及答案
- 工程地质与土力学模拟练习题(附参考答案)
- 人教版小学数学四年级下册《复式条形统计图》说课稿
- 英语教学方法与策略
- 车队安全教育培训内容
- 抗原 抗原(免疫学检验课件)
- 民航概论PPT全套教学课件
- 轮毂电机驱动的越野车双横臂悬架设计
- 药学专业论文3000字-药学毕业论文
- 2022-2023学年辽宁省葫芦岛市建昌县数学四下期末经典试题含解析
- 山东工商学院马克思主义基本原理期末复习题及参考答案
- 2023年济南工程职业技术学院单招职业技能考试题库及答案解析word版
- 文献检索与论文写作-文献检索与科技论文写作138课件
评论
0/150
提交评论