zoukankan      html  css  js  c++  java
  • AQtime实战

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    最近在博客园看到了JustIn兄弟写的一些列的AQtime文章,非常不错,看完了手痒痒于是自己就写点了。

    Justin

    [原创]DebugTools系列(1):AQTime初探

    [原创]DebugTools系列(2):AQTime配置

    [原创]DebugTools系列(3):AQTime实践

    [原创]DebugTools系列(4):AQTime经验总结

     

    一、    背景介绍

     

    AQTime 是一款Code Profile 工具,在2004年即获得了Sys-Con Magzine的最佳调试工具奖,它是由AutomatedQA公司(http://www.automatedqa.com)开发的,支持多种语言的性能测试。结合公司当前情况,将利用 AQTime 测试 .net winApp 性能瓶颈。

    二、方法概述

    1、    确定测试范围:确定需要分析的业务功能范围;裁剪待分析的类和方法。

    2、    确定测试粒度:依据由粗至细的粒度原则进行分析,依次进行类、方法、行级跟踪;

    3、    分析结果数据:根据截获的数据,分析数据确定下一步动作。

     

    三、操作步骤

    1、  File –> New Project(Shift+Ctrl+N) 新建空白测试工程AQtime_Demo_TestPrj.aqt

    2、  选择测试类型。AQtime可进行Allocation profilerCoverage profilerPerformance profiler等多种测试数据的采集。由于关心函数的执行时间的性能,此处选择“Performance profile”进行数据收集策略;

    3、  添加待测文件或模块(*.dll*.exe) ;在 Setup标签页中添加待测程序AQTimeDemo.exe

    4、  确定测试区域范围。

    4.1   依据“由粗至细”的原则,第一次采取数据时,可直接勾选“Full Check by Routines”,此时将跟踪捕获过程中所有方法的执行细节。为了更有针对性,也为了减少赛选数据量,可手动添加待测试区域 ProcessMethod

    4.2   添加待测方法

    Setup标签的Modules中,选择待测方法后,右键,选中“Add Selected to Aera”菜单中的“ProcessMethod”,即可将待测方法添加到测试区域。

    5、  设定数据采集动作;

    5.1   添加动作:

    Triggers and Actions 标签页中右键,选择“Add Action…”,会出现“Add Action”对话框。如图填写基本数据后,确定即可。

    4.3   设置获取结果动作函数;

    Setup标签的Modules中,选中获取结果前执行的函数“AQtime.BusinessLayer.Process”后,右键,选择“Add Selected to Action”的“GetResult”,即可将指定方法添加到GetResult动作中。目的是在执行这些函数后,获取数据结果。

    6、  F5启动应用程序,此时会出现“Run Setting”设置对话框,直接点击“Run”即可。在测试*.dll 等内容时,需要先设定运行参数Run -> Parameters 即可出现设定参数对话框。

    7、  按照正常步骤执行程序,当程序执行完成后,AQtime 将自动记录每个函数的执行细节:

    8、  分析数据

    选择其中的某个方法,可在底部得到与该方法关联的细节。个人最喜欢的是下面的 Call Graph”,此处可以看到各种函数的调用关系,并显示出每个函数的执行时间和内容。


    9
    、通过分析上面的数据,确定下一步需要跟踪的方法为“BusinessLayer::Process”。按照4.2中的方法,将该方法添加到ProcessMethod 区域中。为了更清楚的分析数据,双击“Areas(Routines,Lines) ”面板中的“ProcessMethod”区域,更改Level为“Lines”,并取消勾选的“Full Check By Routines”。

    10、按 F5 重启应用程序,重新按照正常步骤执行程序;

    11、重新分析收集到的数据。在分析的数据底部,切换到“Editor”标签,得到每行命令执行的时间:

    通过以上的分析,得到性能瓶颈点在于Source Line 46行的代码。当反复调用该方法50000次占64.12%的时间,因此我们优化的方法的重点在于改变Process方法中的瓶颈点。找到瓶颈点后,就是对症下药制定修改策略。

     

    四、总结

             以上就是通过介绍使用 AQtime分析winApp的性能瓶颈点和热点,制定相关修改策略。使用AQtime不仅仅可以测试 c/s 的性能瓶颈,也可以找到 b/s 的瓶颈,基本上都是大同小异。

     

    相关资料下载:http://download.csdn.net/source/744776

  • 相关阅读:
    蚂蚁
    N的阶乘
    最小公倍数LCM
    最大公约数GCD
    Truck History(卡车历史)
    亲戚
    [SDOI2011]打地鼠
    连续自然数和
    P4250 [SCOI2015]小凸想跑步
    P4048 【[JSOI2010]冷冻波】
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2237531.html
Copyright © 2011-2022 走看看