实验二:使用Quantify进行性能测试.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二:使用Quantify 进行性能测试 Quantify 是一个性能瓶颈分析工具,它的工作原理是通过精确的计时数据来 找出性能瓶颈,并追踪版本间的性能变化 工作流程是: 1. File Run 打开一个exe 文件的程序 2. 系统自动执行该程序 3. 执行过程中可以记录中间性能度量数据 4. 程序执行结束,系统显示性能分析结果 5. 用户对分析结果进行比较和研究,或者再一次运行程序获取更多的性能 度量数据 一、 启动Quantify 首先选择 开始菜单-所有程序-IBM Rational-IBM Rational PurifyPlus- Quantify 。图1 中显示了Rational Quantify 的启动窗口。 图1:Quantify 的启动窗口 二、 实例:,ActiveX 控件 1. 配置信息 选择”Settings”-”Configure …”-添加实际用到的两个模块:fasteractx.ocx 和 vqdemocon.exe ,,并且从”Files”添加源文件目录,方便后面的调试,点击确定后 run 。 如图 2 所示,将执行模块的路径和源文件的路径设置好。注意模块的属 性,”Messurement”都是”Line” 1 图2 : 配置信息 图3 为运行结果,点击start 键运行一下,然后退出程序 图3 控件的运行结果 2 图4 ,5,6 为Quantify 的分析结果。 图4 为函数调用关系图,图中高亮的是耗时最多的函数。 图4: Quantify 的分析结果,函数调用关系图 图5 为函数调用的详细情况,图中是经过调用时间排序的结果,这里包含了 调用到的系统库的函数和我们实验的这个程序的函数,这里我们暂且不用去关心 系统库函数的调用情况。 图5: 函数调用详情 3 图6 为CMyCubeMatrix::Paint3DLoop 函数的调用情况,从图中我们可以看 到该函数调用最多的函数函数是CMyCubeMatrix:: RepetitiveJob2 这个函数,该 函数占了75.40%的函数调用。 图6: CMyCubeMatrix::Paint3DLoop 函数的调用情况 图7 :查看源代码 4 我们可以进一步查看源代码的调用情况,结果如图7,8 : 图8: 对应源代码的调用情况 由上图可以看见,RepetitiveJob2 函数的调用为于Paint3DLoop 函数中的一 个循环中,而且这个函数本身的耗时也很多。 找出问题之后,我们就通过可以改善这部分代码来提高代码的执行性能。 这里我们将上面的RepetitiveJob2 函数改为: void CMyCubeMatrix::RepetitiveJob1() { char buf[WORKLOOPCOUNT][20]; for (int cnt = 0; cnt WORKLOOPCOUNT; cnt++) { wsprintf(buf[cnt], Hello World %d, cnt); } } 然后重新编译后,再次执行,结果变快了些,如图9 所示。 将两次结果进行比对,结果如图 10 所示。 5

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档