欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應(yīng)用程序性能測試方法、裝置和系統(tǒng)與流程

文檔序號:12747939閱讀:249來源:國知局
應(yīng)用程序性能測試方法、裝置和系統(tǒng)與流程

本發(fā)明涉及應(yīng)用程序測試技術(shù)領(lǐng)域,特別涉及一種應(yīng)用程序性能測試方法、裝置和系統(tǒng)。



背景技術(shù):

在.NET的程序保護領(lǐng)域中,往往要對一段程序進行保護。如果盲目的采用加殼(shell)等方式進行保護,會對程序性能造成很大的影響,嚴重時將導(dǎo)致程序無法運行或特別緩慢。比較理想的方法是先對程序的執(zhí)行進行統(tǒng)籌分析,在分析結(jié)果之上進行保護。

對于程序的分析方法,目前主要有以下兩種:

1,采用com組件,利用微軟提供的com接口進行程序的性能分析。采用這種方法對程序性能進行分析時,需要設(shè)置環(huán)境變量,而且這種環(huán)境變量同時也是全局變量,會對其它.net程序造成影響。另外對于不同的.net版本需要采用不同的分析方式,兼容性較差,且步驟繁瑣,不方便對進程進行性能統(tǒng)計。

2,采用mono開源庫的,采用這種方法對程序性能進行分析時,需要在待分析的程序中插入分析代碼,需要修改源程序,而且這種方法同樣對不同的.net版本需要采用不同的分析方式,兼容性較差。

可見,現(xiàn)有的對.net程序性能進行分析的方法都存在兼容性較差的問題。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明的目的是提供一種能夠兼容多個.net版本的應(yīng)用程序性能測試方法、裝置和系統(tǒng)。

為了實現(xiàn)上述目的,本發(fā)明提供了一種應(yīng)用程序性能測試方法,所述方法包括:執(zhí)行待分析程序;

把實施統(tǒng)計預(yù)設(shè)性能指標的動態(tài)庫注入所述待分析程序,以對待分析程序中的將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行定位,進而對將要統(tǒng)計所述預(yù)設(shè)性能指標的特征數(shù)據(jù)進行解析;

在所述待分析程序執(zhí)行完畢后,輸出所述預(yù)設(shè)性能指標。

作為優(yōu)選,所述預(yù)設(shè)性能指標為包括調(diào)用次數(shù)在內(nèi)的調(diào)用信息。

作為優(yōu)選,所述特征數(shù)據(jù)包括函數(shù)或代碼段。

作為優(yōu)選,對待分析程序中的將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行定位,包括:

掛鉤能夠加載動態(tài)庫的系統(tǒng)函數(shù),等待所述動態(tài)庫加載到內(nèi)存;

掛鉤所述動態(tài)庫的導(dǎo)出函數(shù),以獲得所述導(dǎo)出函數(shù)的返回值。

作為優(yōu)選,把實施統(tǒng)計預(yù)設(shè)性能指標的動態(tài)庫注入所述待分析程序,以對將要統(tǒng)計所述預(yù)設(shè)性能指標的特征數(shù)據(jù)進行解析,包括:

將所述返回值指向的第一個函數(shù)或代碼段替換為自定義函數(shù),并執(zhí)行所述自定義函數(shù),其中,所述第一個函數(shù)或代碼段用于解析所述待分析程序的源程序代碼。

作為優(yōu)選,執(zhí)行所述自定義函數(shù),包括:

解析所述待分析程序的源程序代碼;

在解析得到的代碼前插入跳轉(zhuǎn)指令,以跳轉(zhuǎn)到性能分析函數(shù);

執(zhí)行所述性能分析函數(shù),然后再繼續(xù)執(zhí)行所述解析得到的代碼。

作為優(yōu)選,執(zhí)行所述性能分析函數(shù),包括:

統(tǒng)計所述源程序代碼中每一個函數(shù)或代碼段的調(diào)用次數(shù),并形成統(tǒng)計報告。

作為優(yōu)選,輸出所述預(yù)設(shè)性能指標,包括:

將所述統(tǒng)計報告發(fā)送到接收統(tǒng)計結(jié)果端,以顯示所述統(tǒng)計報告。

本發(fā)明還提供一種應(yīng)用程序性能測試系統(tǒng),所述系統(tǒng)包括:

執(zhí)行模塊,用于執(zhí)行待分析程序;

注入模塊,用于把實施統(tǒng)計預(yù)設(shè)性能指標的動態(tài)庫注入所述待分析程序,以對待分析程序中的將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行定位,進而對將要統(tǒng)計所述預(yù)設(shè)性能指標的特征數(shù)據(jù)進行解析;

輸出模塊,用于當(dāng)所述待分析程序執(zhí)行完畢時,輸出所述預(yù)設(shè)性能指標。

本發(fā)明還提供一種應(yīng)用程序性能測試設(shè)備,所述設(shè)備包括上述的應(yīng)用程序性能測試系統(tǒng)。

與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:本發(fā)明實施例的技術(shù)方案在執(zhí)行待分析程序時,以將實施分析預(yù)設(shè)性能指標的動態(tài)庫注入所述待分析程序,以對待分析程序中與預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行定位,從而對預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行解析,當(dāng)所述待分析程序執(zhí)行完畢時,輸出所述預(yù)設(shè)性能指標,由于本發(fā)明的技術(shù)方案對預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行解析,對不同.net程序版本均解析為匯編語言代碼,因此本發(fā)明的技術(shù)方案可以兼容不同版本的.net程序。

附圖說明

圖1為本發(fā)明的應(yīng)用程序性能測試方法的實施例一的流程圖;

圖2為本發(fā)明的應(yīng)用程序性能測試方法的實施例二的流程圖;

圖3為本發(fā)明的應(yīng)用程序性能測試系統(tǒng)的實施例的示意圖。

具體實施方式

下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。

圖1為本發(fā)明的應(yīng)用程序性能測試方法的實施例一的流程圖,如圖1所示,本實施例的應(yīng)用程序性能測試方法,具體可以包括如下步驟:

S101,執(zhí)行待分析程序;

具體地,本實施例為對應(yīng)用程序性能進行測試,對于特征數(shù)據(jù)的要統(tǒng)計的預(yù)設(shè)性能指標可以是特征數(shù)據(jù)的調(diào)用次數(shù)等指標,因此在本實施例中,預(yù)設(shè)性能指標可以為包括調(diào)用次數(shù)在內(nèi)的調(diào)用信息。在本發(fā)明的其他實施例中,預(yù)設(shè)性能指標還可以是如執(zhí)行時間等其他性能指標。

本實施例在具體實施時,特征數(shù)據(jù)可以包括函數(shù)或代碼段。例如,可以統(tǒng)計一函數(shù)的調(diào)用次數(shù),還可以統(tǒng)計一函數(shù)中的某一代碼段的調(diào)用次數(shù),同理還可以是其他部分的代碼段的調(diào)用次數(shù)。

S102,把實施統(tǒng)計預(yù)設(shè)性能指標的動態(tài)庫注入待分析程序,以對待分析程序中的將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行定位,進而對將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行解析;

具體地,為實施統(tǒng)計,本發(fā)明實施例將動態(tài)庫注入待分析程序,也就是說在系統(tǒng)函數(shù)前插入跳轉(zhuǎn)指令,以便于在執(zhí)行系統(tǒng)函數(shù)之前可以執(zhí)行能夠?qū)崿F(xiàn)統(tǒng)計功能的函數(shù),例如,在系統(tǒng)函數(shù)kernelbase!LoadLibraryExW之前插入跳轉(zhuǎn)指令。本實施例為統(tǒng)計函數(shù)或代碼段統(tǒng)計調(diào)用次數(shù),在執(zhí)行時需要對函數(shù)或代碼段進行定位,以便于統(tǒng)計其調(diào)用次數(shù)。在執(zhí)行待分析程序時,對待分析程序中包含的函數(shù)或代碼段的調(diào)用次數(shù)進行統(tǒng)計。需要說明的是,本實施例所指的系統(tǒng)函數(shù),并非是特指某一系統(tǒng)函數(shù),也并非指所有系統(tǒng)函數(shù),而是指能夠?qū)崿F(xiàn)加載動態(tài)庫功能的系統(tǒng)函數(shù)。例如,該系統(tǒng)函數(shù)能夠?qū)討B(tài)庫mscorjit.dll或者clrjit.dll等動態(tài)庫加載到內(nèi)存。

S103,在待分析程序執(zhí)行完畢后,輸出預(yù)設(shè)性能指標。

具體地,本實施例中包括接受統(tǒng)計結(jié)果端和實施統(tǒng)計端,上述兩個步驟S101和S102是在實施統(tǒng)計端實行,本步驟是將實行結(jié)果發(fā)送至接受統(tǒng)計結(jié)果端。在本實施例的待分析程序啟動前,可以預(yù)先創(chuàng)建文件映射表,當(dāng)本步驟輸出預(yù)設(shè)性能指標時,直接將預(yù)設(shè)性能指標作為對象發(fā)送至文件映射表中,待輸出的預(yù)設(shè)性能指標搜集完畢,將直接打開結(jié)果,使用戶對應(yīng)用程序性能有直觀的了解。

本發(fā)明實施例的技術(shù)方案在執(zhí)行待分析程序時,將實施分析預(yù)設(shè)性能指標的動態(tài)庫注入待分析程序,該動態(tài)庫會對待分析程序中與預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行定位,從而對預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行解析,當(dāng)待分析程序執(zhí)行完畢時,輸出預(yù)設(shè)性能指標,由于本發(fā)明的技術(shù)方案對預(yù)設(shè)性能指標相關(guān)的特征數(shù)據(jù)進行解析,對不同.net程序版本均解析為匯編語言代碼,因此本發(fā)明的技術(shù)方案可以兼容不同版本的.net程序。

圖2為本發(fā)明的應(yīng)用程序性能測試方法的實施例二的流程圖,本實施例的應(yīng)用程序性能測試方法在上述實施例一的基礎(chǔ)上,進一步更加詳細地介紹本發(fā)明的技術(shù)方案。如圖2所示,本實施例的應(yīng)用程序性能測試方法,具體可以包括如下步驟:

S201,執(zhí)行待分析程序;

具體地,基于程序的特性,由于程序一般具有模塊化的特點,因此用戶一般無法直接查看程序的代碼來確定函數(shù)或代碼段的位置,因此只有在執(zhí)行待分析程序時,才能為函數(shù)或代碼段定位,以方便統(tǒng)計函數(shù)或代碼段的調(diào)用次數(shù),從而對應(yīng)用程序的性能進行測試。

S202,掛鉤能夠加載動態(tài)庫的系統(tǒng)函數(shù),以等待所述動態(tài)庫加載到內(nèi)存;

具體地,本發(fā)明實施例中將動態(tài)庫注入待分析程序以實施統(tǒng)計,也就是說在系統(tǒng)函數(shù)前插入跳轉(zhuǎn)指令,以便于在執(zhí)行系統(tǒng)函數(shù)之前可以執(zhí)行能夠?qū)崿F(xiàn)統(tǒng)計功能的函數(shù),例如,在系統(tǒng)函數(shù)kernelbase!LoadLibraryExW之前插入跳轉(zhuǎn)指令。需要說明的是,本實施所指的系統(tǒng)函數(shù),并非是特指某一系統(tǒng)函數(shù),也并非指所有系統(tǒng)函數(shù),而是指能夠?qū)崿F(xiàn)加載動態(tài)庫功能的系統(tǒng)函數(shù)。例如,將動態(tài)庫mscorjit.dll或者clrjit.dll加載到內(nèi)存。

S203,掛鉤所述動態(tài)庫的導(dǎo)出函數(shù),以獲得所述導(dǎo)出函數(shù)的返回值;

具體地,雖然不同的.net版本所包含的動態(tài)庫不盡相同,但是其導(dǎo)出函數(shù)都相同,因此,本發(fā)明基于導(dǎo)出函數(shù)進行統(tǒng)計,能夠兼容不同的.net版本。

S204,將所述返回值指向的第一個函數(shù)或代碼段替換為自定義函數(shù),并執(zhí)行所述自定義函數(shù),其中,所述第一個函數(shù)或代碼段用于解析所述待分析程序的源程序代碼。

具體地,自定義函數(shù)的作用為在實現(xiàn)第一個函數(shù)的功能的同時,還可以在以后程序的執(zhí)行過程中,在需要分析的函數(shù)或代碼段前均插入用于分析程序性能的函數(shù)。

具體地,第一個函數(shù)是轉(zhuǎn)換函數(shù)。由于.net是一種中間代碼,.net程序在執(zhí)行時,均要將源程序的代碼轉(zhuǎn)換成匯編代碼,才能執(zhí)行。返回值指向的第一個函數(shù)正是能夠?qū)⒃闯绦虻拇a轉(zhuǎn)換成匯編代碼。同時,由于第一個函數(shù)為轉(zhuǎn)換函數(shù),因此不需要統(tǒng)計其調(diào)用次數(shù),因此將第一個函數(shù)替換,不會影響本實施例對應(yīng)用程序性能分析結(jié)果的準確性。

具體地,步驟S204包括:A,解析待分析程序的源程序代碼;B,在解析得到的代碼前插入跳轉(zhuǎn)指令,以跳轉(zhuǎn)到性能分析函數(shù);C,執(zhí)行性能分析函數(shù),然后再繼續(xù)執(zhí)行解析得到的代碼。

就本實施例而言,性能分析函數(shù),主要用于統(tǒng)計函數(shù)或代碼段的調(diào)用次數(shù),在其他實施例中,根據(jù)性能指標的不同,性能分析函數(shù)的功能也有所不同。這里解析所得到的代碼為匯編代碼。

同時,步驟C包括:統(tǒng)計所述源程序代碼中每一個函數(shù)或代碼段的調(diào)用次數(shù),并形成統(tǒng)計報告。

S205,將所述統(tǒng)計報告發(fā)送到接收統(tǒng)計結(jié)果端,以顯示所述統(tǒng)計報告。

具體地,本實施例中包括接受統(tǒng)計結(jié)果端和實施統(tǒng)計端,上述兩個步驟S201-S204是在實施統(tǒng)計端實行,則本步驟是將實行結(jié)果發(fā)送至接受統(tǒng)計結(jié)果端。在本實施例的待分析程序啟動前,可以預(yù)先創(chuàng)建文件映射表,當(dāng)本步驟輸出預(yù)設(shè)性能指標時,直接將預(yù)設(shè)性能指標作為對象發(fā)送至文件映射表中,待輸出的預(yù)設(shè)性能指標搜集完畢,將直接打開結(jié)果,使用戶對應(yīng)用程序性能有直觀的了解。

本發(fā)明實施例的技術(shù)方案在執(zhí)行待分析程序時,在待分析程序掛鉤自定義函數(shù),在但于在對待分析程序進行轉(zhuǎn)換時,插入跳轉(zhuǎn)指令,跳轉(zhuǎn)到性能分析函數(shù),由于自定義函數(shù)所掛鉤的導(dǎo)出函數(shù),而對于所有的.net版本的導(dǎo)出函數(shù)均相同,因此本發(fā)明可以兼容不同版本的.net程序。

圖3為本發(fā)明的應(yīng)用程序性能測試系統(tǒng)的實施例的示意圖,如圖3所示,本實施例的應(yīng)用程序性能測試系統(tǒng),具體可以包括定位模塊31、注入模塊32和輸出模塊33。

定位模塊31,用于執(zhí)行待分析程序;

注入模塊32,用于把實施統(tǒng)計預(yù)設(shè)性能指標的動態(tài)庫注入所述待分析程序,以對待分析程序中的將要統(tǒng)計預(yù)設(shè)性能指標的特征數(shù)據(jù)進行定位,進而對將要統(tǒng)計所述預(yù)設(shè)性能指標的特征數(shù)據(jù)進行解析;

輸出模塊34,用于當(dāng)所述待分析程序執(zhí)行完畢時,輸出所述預(yù)設(shè)性能指標。

本實施例的應(yīng)用程序性能測試裝置,通過采用上述模塊對應(yīng)用程序的性能進行測試的實現(xiàn)機制與上述圖1所示實施例的應(yīng)用程序性能測試方法的實現(xiàn)機制相同,詳細可以參考上述圖1所示實施例的記載,在此不再贅述。

本發(fā)明還提供一種應(yīng)用程序性能測試設(shè)備,系統(tǒng)包括如圖3所示的應(yīng)用程序性能測試系統(tǒng)。

以上實施例僅為本發(fā)明的示例性實施例,不用于限制本發(fā)明,本發(fā)明的保護范圍由權(quán)利要求書限定。本領(lǐng)域技術(shù)人員可以在本發(fā)明的實質(zhì)和保護范圍內(nèi),對本發(fā)明做出各種修改或等同替換,這種修改或等同替換也應(yīng)視為落在本發(fā)明的保護范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平原县| 松原市| 庄河市| 黑河市| 吴旗县| 宜昌市| 平塘县| 故城县| 益阳市| 乌鲁木齐县| 吉安市| 新疆| 江油市| 平顶山市| 罗平县| 恭城| 涞源县| 武威市| 富源县| 三都| 新竹市| 新丰县| 公安县| 沙雅县| 岚皋县| 葫芦岛市| 吉木乃县| 肇州县| 维西| 曲沃县| 琼海市| 西畴县| 远安县| 济阳县| 广河县| 盖州市| 凉城县| 兰坪| 高唐县| 福海县| 新民市|