<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      AQTime教程 From www...

      簡介
      AQTimeMemProof都是AutomatedQA旗下的產(chǎn)品,AQTimeMemProof提供了更豐富強(qiáng)大的功能。該產(chǎn)品含有完整的性能和調(diào)試工具集,能夠收集程序運(yùn)行時(shí)關(guān)鍵的性能信息和內(nèi)存/資源分配信息,并提交概要報(bào)告和詳細(xì)報(bào)告,還提供所有的程序優(yōu)化處理工具,囊括了自定義過濾器、圖形化的調(diào)用層次結(jié)構(gòu)一直到源代碼瀏覽等內(nèi)容。AQTime的特色在于它不僅是一款調(diào)試工具,還是一款性能優(yōu)化工具。另外,還支持與基于SCC API的版本控制軟件集成使用。
      使用方法
      本文只針對DELPHI,其他開發(fā)語言可以參照。
      2.1 下載
      AQTime是一個(gè)商業(yè)軟件,你可以在官方網(wǎng)站上下載試用版本:
      下載地址http://www.automatedqa.com/products/aqtime/index.asp
      本文使用的是AQTime 4.92 版本
      2.2 安裝
      直接運(yùn)行安裝即可
      2.3 準(zhǔn)備
      MemProof一樣,要求目標(biāo)程序帶有完整的調(diào)試信息。打開工程選項(xiàng)(Project-Options
      1Compiler面板
      l 去掉Optimization(代碼優(yōu)化)選項(xiàng)
      l 選擇Stack Frames(為所有過程函數(shù)強(qiáng)制生成調(diào)用堆棧)選項(xiàng)
      l 選擇Debug information (DCU文件中生成調(diào)試信息)選項(xiàng)
      2Linker面板
      l 選擇Detailed生成完整的MAP文件包含模塊、單元、過程等地址信息選項(xiàng)
      l 選擇Include TD32 debug info(將調(diào)試信息生成到可執(zhí)行文件)選項(xiàng)
      該選項(xiàng)會導(dǎo)致可執(zhí)行文件體積增大,但不會影響運(yùn)行效率以及內(nèi)存占用,建議在正式發(fā)布時(shí)不要帶上該選項(xiàng)。
      3Packages面板
      如果希望使用Allocation profiler 資源分配測試方案
      去掉 Build with runtime packages
      也可以不去掉該選項(xiàng)但是必須使用Add Moudle把下列BPL添加進(jìn)來
      VCL50.BPL Delphi 5.
      RTL60.BPL Delphi 6.
      RTL70.BPL Delphi 7.
      RTL90.BPL Delphi 2005 for Win32.
      2.4 面板簡介
      Event View 事件瀏覽查看運(yùn)行過程中的事件
      Moniter 監(jiān)視面板監(jiān)視運(yùn)行期間各個(gè)模塊的內(nèi)存使用情況
      Disassembler 匯編代碼面板,查看匯編代碼
      Editor 代碼瀏覽窗口,如果無法瀏覽代碼,會出現(xiàn)路徑配置,選擇好代碼的路徑即可瀏覽
      Details 詳細(xì)信息窗口查看比報(bào)告中更詳細(xì)的內(nèi)容
      Call Graphic 圖表方式顯示方法調(diào)用情況
      Call Tree 樹方式顯示方法調(diào)用情況
      PE Reader PE文件瀏覽窗口
       
      2.5 開始
      選擇FileNew Project From Moudle 打開待測試的程序選擇一種測試方案開始測試。AQTime共有五個(gè)大類共八種不同的測試方案,下面一一介紹:
      2.5.1 Allocation(資源測試)
      測試資源分配釋放情況,檢查內(nèi)存泄漏。共有兩個(gè)測試方案:Allocation Profiler(內(nèi)存使用剖析) Resource profiler(系統(tǒng)資源使用監(jiān)測)
      2.5.1.1               Allocation Profiler(內(nèi)存使用剖析)
      2.5.1.1.1                   說明
      跟蹤程序執(zhí)行過程中對內(nèi)存資源的使用情況,按類、對象檢測并顯示程序中對內(nèi)存資源使用情況,確定明顯或潛在的內(nèi)存泄露來源, 避免由此造成的程序崩潰。AQTime會跟蹤TObject繼承下來的對象的創(chuàng)建和刪除,以及通過內(nèi)存管理函數(shù)
      ·      GetMem, ReallocMem, FreeMem
      ·      GetMemory, ReallocMemory, FreeMemory
      ·      SysGetMem, SysReallocMem, SysFreeMem
      分配和釋放的內(nèi)存。
             注意這個(gè)方案不會跟蹤使用WINAPI創(chuàng)建和釋放的內(nèi)存
       
      2.5.1.1.2                   測試結(jié)果報(bào)告    
      測試結(jié)果報(bào)告中有類和對象兩種統(tǒng)計(jì)報(bào)告:
             類統(tǒng)計(jì)報(bào)告:

      Class Name
      Total Created
      Live Count
      Live Size
      Total Size
      TFont
      8
      1
      36
      288

      Class Name 類名稱如果是通過內(nèi)存管理函數(shù)分配的內(nèi)存類名為VCL native memory如果選擇了Check Memory Bounds內(nèi)存邊界檢查),類名也有可能為Memory Overwrite Error
      Total Created 程序運(yùn)行期間創(chuàng)建的內(nèi)存總數(shù)目
      Live Count 當(dāng)前還有多少數(shù)目內(nèi)存未釋放
      Live Size 當(dāng)前還有多大內(nèi)存未釋放
      Total Size 程序運(yùn)行期間創(chuàng)建的內(nèi)存總大小
       
             對象統(tǒng)計(jì)報(bào)告:

      Object Name
      Size
      Root
      References To
      Address
      Get#
      TFont.503
      60
      False
      0
      0x02CA1D9C
      1

      Object Name 對象名稱對象名稱的命名規(guī)則為Class Name + period + numberTFont.503 代表503個(gè)被創(chuàng)建的TFont對象。
      Size 內(nèi)存泄漏的大小
      Root True代表對象可能屬于一個(gè)全局變量、本地變量或者函數(shù)的參數(shù);為False代表對象是另一個(gè)對象的屬性
      References To 當(dāng)前對象共關(guān)聯(lián)了多少個(gè)其他對象
      Address 對象地址
      Get# 當(dāng)運(yùn)行過程中使用了Run-Get Results手工獲取報(bào)告時(shí)Get#代表當(dāng)前報(bào)告屬于第幾次Get Results所獲得的報(bào)告。(筆者多次使用Get Results后,所有結(jié)果依然為1,奇怪~~)
      2.5.1.2               Resource profiler(系統(tǒng)資源使用監(jiān)測)
      2.5.1.2.1                   說明
      跟蹤程序運(yùn)行期間對操作系統(tǒng)資源(fonts, brushes, bitmaps, and other graphic components, registry, COM objects, print spooler, etc.)的使用情況如某時(shí)間片內(nèi),程序本身開銷的系統(tǒng)資源、因這些資源帶來的內(nèi)存和CPU開銷、來自于這些資源使用中出現(xiàn)的錯誤使檢測者很容易獲知在程序運(yùn)行期間與之相關(guān)系統(tǒng)資源的分配和使用情況。
      2.5.1.2.2                   測試結(jié)果報(bào)告    
      測試結(jié)果報(bào)告中有類、對象和錯誤三種統(tǒng)計(jì)報(bào)告:
             類統(tǒng)計(jì)報(bào)告:

      Module Name
      Class Name
      Live Count
      Total Created
      Live Size
      Total Size
      Image
      PROJECT1.EXE
      TLS
      3
      13
      0
      0
       

      Module Name 分配這塊資源的模塊
      Image 資源類型的圖標(biāo)
      注:其他類型在上面已經(jīng)介紹過了,不再重復(fù)。后面也遵照這條說明
             對象統(tǒng)計(jì)報(bào)告:

      Module Name
      Class Name
      Object Name
      Get#
      Image
      PROJECT1.EXE
      TLS
      TLS.13
      1
       

      2.5.2 Coverage(覆蓋率測試)
      覆蓋率測試,共有一個(gè)測試方案:Coverage profiler(代碼覆蓋率分析)
      2.5.2.1               Coverage profiler(代碼覆蓋率分析)
      2.5.2.1.1                   說明
      代碼覆蓋率分析,測試出代碼在運(yùn)行過程中的執(zhí)行情況。它提供routine line兩種級別,可以幫助查找出程序中的無用代碼。
      2.5.2.1.2                   測試級別
      AQTime共有3種測試級別routine, line class。不同的測試方案中支持的級別不同routine, line 之在Performance Coverage中支持class只在Allocation中支持。其他測試方案則不支持測試級別的選擇。選擇測試方案可以在Areas面板中選擇。
      Routine 按方法以方法或函數(shù)為單位
      Line 按行以代碼行為單位
      Class 按類以類為單位
      2.5.2.1.3                   測試結(jié)果報(bào)告    
      測試報(bào)告中有三種類型:方法、模塊和源碼文件。每種類型按照線程劃分報(bào)告,每個(gè)線程有一個(gè)報(bào)告結(jié)果。
      方法統(tǒng)計(jì)報(bào)告:

      Routine Name
      Hit Count
      Total Lines
      Lines Uncovered
      % Covered
      Mark
      TForm1::FormCreate
      1
      5
      0
      100.00 %
       

      Routine Name 方法名稱
      Hit Count 方法執(zhí)行時(shí)被記錄的次數(shù)。這個(gè)屬性不一定完全等于這個(gè)方法被運(yùn)行的次數(shù)如果測試過程中選擇了Run-Disable Profiles停止記錄的話Hit Count將不會增加計(jì)數(shù)而是增加Skip Count計(jì)數(shù)所以一個(gè)方法的完整運(yùn)行次數(shù)應(yīng)該等于Hit Count Skip Count
      Total Lines 方法中總的代碼行數(shù),如果沒有選擇Line測試級別的話,將不會有統(tǒng)計(jì)結(jié)果。(注意代碼的行數(shù)統(tǒng)計(jì)包括方法的Begin End,也就是說一個(gè)空的過程的代碼行數(shù)也會有2行)
      Lines Uncovered 方法中未被執(zhí)行的代碼行數(shù)
      % Covered 代碼覆蓋率=(Total LinesLines Uncovered/ Total Lines
      Mark 該方法在運(yùn)行期間是否被運(yùn)行過
      模塊統(tǒng)計(jì)報(bào)告:

      Module Name
      Hit Count
      % Covered
      Project1.exe
      25209
      75.00 %

      源碼文件統(tǒng)計(jì)報(bào)告:

      File Name
      Hit Count
      % Covered
      Unit1.pas
      2
      71.43 %

      2.5.3 Performance
      性能測試共有一個(gè)測試方案Performance profiler代碼層或應(yīng)用程序?qū)拥男阅軝z測
      2.5.3.1               Performance profiler代碼層或應(yīng)用程序?qū)拥男?strong>能檢測
      2.5.3.1.1                   說明
      提供針對程序中任意范圍[sourcefileroutineclassunit]內(nèi)的程序段或單行代碼進(jìn)行的性能檢測。在程序執(zhí)行期間,工具自動收集運(yùn)行時(shí)的性能表征數(shù)據(jù)(如調(diào)用次數(shù)、執(zhí)行時(shí)間、調(diào)用與被調(diào)用函數(shù)、函數(shù)調(diào)用層次圖、執(zhí)行期間發(fā)生的異常情況等等)。此外,工具提供與運(yùn)行時(shí)間、CPU緩存使用等相關(guān)的多種計(jì)數(shù)器[Elapsed TimeUser TimeUser+Kernel TimeCPU Cache MissesContext Switches],為了解應(yīng)用代碼級和應(yīng)用程序級上的性能使用和確定可能存在的性能瓶頸提供詳實(shí)的參考數(shù)據(jù)。
      2.5.3.1.2                   測試結(jié)果報(bào)告    
      測試報(bào)告中有三種類型:方法、模塊和源碼文件。每種類型按照線程劃分報(bào)告,每個(gè)線程有一個(gè)報(bào)告結(jié)果。報(bào)告上方有四種時(shí)間精確度選擇:Seconds, MilliSeconds, MicroSeconds, Machine Cycles
      方法統(tǒng)計(jì)報(bào)告:

      Routine Name
      Time
      Time with Children
      Shared Time
      Hie Count
      TForm1::FormCreate
      526
      526
      100.00
      20.77 %

      Time 方法執(zhí)行花費(fèi)的總時(shí)間,不包括方法中調(diào)用的子方法所花費(fèi)的時(shí)間。
      Time with Children 方法執(zhí)行花費(fèi)的總時(shí)間包括子方法所花費(fèi)的時(shí)間
      Shared Time Shared Time = Time / Time with Children
      模塊統(tǒng)計(jì)報(bào)告:

      Module Name
      Time
      % Time
      Hit Count
      Project1.exe
      2532
      100.00 %
      3

      % Time 當(dāng)前模塊在所有被測試的模塊中所占用的時(shí)間比例
      源碼文件統(tǒng)計(jì)報(bào)告:

      File Name
      Time
      % Time
      Hit Count
      Unit1.pas
      2022
      79.86 %
      2

      % Time 當(dāng)前單元文件在所有被測試的單元文件中所占用的時(shí)間比例
       
      以上三種測試報(bào)告中還有很多其他的項(xiàng)目,用戶可以自己選擇添加。如:Average Time(平均花費(fèi)時(shí)間)、First Time(第一次被調(diào)用的時(shí)間)、Max Time and Min Time(最長/短一次調(diào)用所花費(fèi)的時(shí)間)等等。
      2.5.4 Static Analysis
      靜態(tài)分析并標(biāo)識出待測程序的內(nèi)部結(jié)構(gòu),共有三個(gè)測試方案:Platform ComplianceAPIAPI平臺支持測試)、Sequence Diagram LinkUML關(guān)系圖)、Static Analysis(靜態(tài)分析)
      2.5.4.1               Platform ComplianceAPIAPI平臺支持測試)
      程序中使用的API函數(shù)與特定平臺的兼容性分析,識別出與操作系統(tǒng)不兼容的函數(shù)。
      2.5.4.2               Sequence Diagram LinkUML時(shí)序圖)
      自動識別出待測程序中的函數(shù)調(diào)用關(guān)系,自動生成UML格式時(shí)序圖,并通過wordvisio格式顯示。便于檢測者及時(shí)檢查程序的行為。
      2.5.4.3               Static Analysis(靜態(tài)分析)
      靜態(tài)分析并標(biāo)識出待測程序的內(nèi)部結(jié)構(gòu)[UML時(shí)序圖、函數(shù)間調(diào)用關(guān)系、存在的循環(huán)語句、判斷語句、異常處理]和程序規(guī)模[Byteslines]
      2.5.5 Tracing
      異常跟蹤,共有一種測試方案:Exception Tracer(異常跟蹤)
      2.5.5.1               Exception Tracer(異常跟蹤)
      監(jiān)測程序運(yùn)行期間出現(xiàn)的預(yù)知和未知異常,并將異常在源代碼中進(jìn)行定位。當(dāng)程序出現(xiàn)異常時(shí),Event Log窗口會記錄下來,再Event View窗口選中異常查看,在Editor窗口中可以查看到當(dāng)前異常所在的代碼位置。
      2.6 如何測試COM
      COM組件的測試可分為以下幾類:
      in-process servers 進(jìn)程中組件,如:ActiveX controls
      out-of-process servers 進(jìn)程外組件,如:獨(dú)立進(jìn)程中運(yùn)行的OLE servers
      DCOM -在獨(dú)立進(jìn)程中運(yùn)行的OLE servers 且支持網(wǎng)絡(luò)遠(yuǎn)程過程調(diào)用COM+ applications MTS 作為服務(wù)程序運(yùn)行在系統(tǒng)中
      2.6.1 in-process servers
      1、    根據(jù)2.3中介紹的方法為組件加上調(diào)試信息,重新編譯并注冊
      2、    在Profiling Mode(工具欄第三個(gè)按鈕)中選擇Normal
      3、    打開RunParameters,選擇HOST APPLICATION(組件的宿主程序),如果有運(yùn)行參數(shù),在Parameters中加上運(yùn)行參數(shù)
      4、    開始測試
      2.6.2 out-of-process servers
      和普通應(yīng)用程序一致
      2.6.3 DCOM
      1、根據(jù)2.3中介紹的方法為組件加上調(diào)試信息,重新編譯并注冊
      2、在Profiling Mode(工具欄第三個(gè)按鈕)中選擇Com Server
      3、打開RunParameters,選擇HOST APPLICATION(組件的宿主程序),如果有運(yùn)行參數(shù),在Parameters中加上運(yùn)行參數(shù)
      4、開始測試
      2.6.4 COM+ applications MTS
       
      1、    根據(jù)2.3中介紹的方法為組件加上調(diào)試信息,重新編譯并注冊
      2、    在Profiling Mode(工具欄第三個(gè)按鈕)中選擇Normal
      3、    打開RunParameters,選擇C:\Windows\System32\dllhost.exe作為宿主程序,運(yùn)行參數(shù):/ProcessID:Application ID。如:/ProcessID:{52FC412B-819B-47BF-8E22-65426D5C11B7}
      4、    開始測試
      5、    點(diǎn)擊RunGet Results手工獲取測試報(bào)告。這是個(gè)特殊的地方,因?yàn)槭褂?/span>Terminate結(jié)束運(yùn)行時(shí),AQTime獲取不到任何通知,所以無法自動生成報(bào)告
       
      2.7 如何測試服務(wù)程序
      1、    根據(jù)2.3中介紹的方法為組件加上調(diào)試信息,重新編譯并注冊成系統(tǒng)服務(wù)
      2、    在Profiling Mode(工具欄第三個(gè)按鈕)中選擇Services
      3、    開始測試,AQTime會重新啟動服務(wù),掛接上去以獲取測試信息
      4、    點(diǎn)擊RunGet Results手工獲取測試報(bào)告。這是個(gè)特殊的地方,因?yàn)槭褂?/span>Terminate結(jié)束運(yùn)行時(shí),AQTime獲取不到任何通知,所以無法自動生成報(bào)告
      2.8 如何測試IIS
      1、    根據(jù)2.3中介紹的方法為組件加上調(diào)試信息,重新編譯
      2、    在Profiling Mode(工具欄第三個(gè)按鈕)中選擇IIS
      3、    打開RunParameters,輸入起始頁面的URL
      4、    開始測試,AQTime會重新啟動IIS,掛接上去以獲取測試信息
      5    點(diǎn)擊RunGet Results手工獲取測試報(bào)告。這是個(gè)特殊的地方因?yàn)槭褂?/span>Terminate結(jié)束運(yùn)行時(shí)AQTime獲取不到任何通知所以無法自動生成報(bào)告
      2.9 其他功能
      2.9.1          選擇測試區(qū)域
      Ereas窗口中默認(rèn)測試區(qū)域?yàn)?/span>Full Check(測試所有),你可以選擇添加Ereas創(chuàng)建自己的測試區(qū)域,然后從左邊的Moudles窗口中選擇需要測試的模塊拖過來即可。這樣就可以測試指定的模塊了。
      總結(jié)
      AQTime相對與MemProof來說要龐大復(fù)雜多了,需要開發(fā)人員有良好的基礎(chǔ),才可以應(yīng)用自如。筆者平時(shí)只是拿AQTime來做效率測試,這個(gè)功能實(shí)在是太棒了。好了,就此打住~~
       
      posted @ 2010-03-25 17:01  SouthAurora  Views(480)  Comments(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 免费费很色大片欧一二区| 思思99热精品在线| 国内精品久久人妻无码网站| 亚洲理论在线A中文字幕| 人妻少妇精品视频三区二区| 久久久这里只有精品10| 国产精品污www在线观看| 亚洲精品国产精品国在线| A级孕妇高清免费毛片| 狠狠做五月深爱婷婷天天综合| 成人午夜免费无码视频在线观看| 精品一区二区三区在线成人| 久久天天躁狠狠躁夜夜av不卡| 久久亚洲精品11p| 亚洲第一极品精品无码久久| 97人人添人人澡人人澡人人澡| 色综合久久人妻精品日韩| 国产果冻豆传媒麻婆精东| 久久99精品久久久久久齐齐| 国产精品入口中文字幕| 日韩av第一页在线播放| 亚洲中文字幕无码爆乳| 国产成人免费一区二区三区| 国产亚洲精品综合99久久| 亚洲男人精品青春的天堂| 亚洲精品日本久久一区二区三区 | 午夜免费福利小电影| 国产成人午夜福利精品| 午夜精品福利亚洲国产| 黑人巨大AV在线播放无码| 国产线播放免费人成视频播放| 精品国产伦理国产无遮挡| 在线亚洲午夜理论av大片| 国产精品人成视频免费播放| 精品一卡2卡三卡4卡乱码精品视频| 久久综合五月丁香六月丁香| 亚洲欧洲一区二区精品| 宅男噜噜噜66网站高清| 国产精品成人中文字幕| 婷婷四虎东京热无码群交双飞视频 | 国产伦码精品一区二区|