AQtime实战
內部邀請碼: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 profiler、Coverage profiler、Performance 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
轉載于:https://www.cnblogs.com/AloneSword/archive/2008/11/03/2237531.html
總結