亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于支持性能分析的方法和裝置的制造方法

文檔序號(hào):9432414閱讀:231來源:國知局
用于支持性能分析的方法和裝置的制造方法
【專利說明】用于支持性能分析的方法和裝置
[0001]相關(guān)串請(qǐng)的交叉引用
[0002]本公開要求在2014年3月21日提交的題為“Extended OAT File Format Usedfor Supporting Performance Analysis”的美國臨時(shí)申請(qǐng)第61/968,707號(hào)的權(quán)益,其通過引用整體并入本文。
技術(shù)領(lǐng)域
[0003]本公開涉及用于支持性能分析的方法和裝置。
【背景技術(shù)】
[0004]本文所提供的背景描述是為了概括地展現(xiàn)本公開的背景的目的。當(dāng)前提名的發(fā)明人的工作,就在該背景部分中描述該工作的范圍、以及本說明書的在提交時(shí)可能不適合以其他方式作為現(xiàn)有技術(shù)的方面而言,既不明示地也不暗示地被承認(rèn)為相對(duì)本公開的現(xiàn)有技術(shù)。
[0005]通常,評(píng)測工具(profiling tool)可以用于進(jìn)行計(jì)算機(jī)系統(tǒng)中的性能分析。在一個(gè)示例中,計(jì)算機(jī)系統(tǒng)被周期性地中斷,并且評(píng)測工具在中斷例程(interrupt routine)期間對(duì)計(jì)算機(jī)系統(tǒng)中的各種參數(shù)進(jìn)行采樣。采樣的數(shù)據(jù)可以被收集,以評(píng)測計(jì)算機(jī)系統(tǒng),并且統(tǒng)計(jì)分析計(jì)算機(jī)系統(tǒng)的性能。

【發(fā)明內(nèi)容】

[0006]本公開的各個(gè)方面提供一種用來支持性能分析的方法。該方法包括:在電子設(shè)備中,編譯字節(jié)代碼,以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼;生成文件,以在文件中包括字節(jié)代碼和對(duì)應(yīng)的原生代碼;收集符號(hào)信息,以建立字節(jié)代碼中的符號(hào)與對(duì)應(yīng)的原生代碼的偏移的映射;以及在文件中包括符號(hào)信息,用于實(shí)現(xiàn)評(píng)測。
[0007]進(jìn)一步地,在一個(gè)實(shí)施例中,該方法包括:將來自文件的字節(jié)代碼和原生代碼加載到存儲(chǔ)器的用于執(zhí)行的區(qū)段;在執(zhí)行期間,對(duì)程序計(jì)數(shù)器(PC)進(jìn)行采樣,以獲得PC地址;將PC地址轉(zhuǎn)換為,到區(qū)段的起始地址的偏移;以及根據(jù)符號(hào)信息來確定針對(duì)該偏移的符號(hào)。
[0008]在一個(gè)示例中,為了收集符號(hào)信息,以建立字節(jié)代碼中的符號(hào)與對(duì)應(yīng)的原生代碼的偏移的映射,該方法包括:收集方法信息,以建立字節(jié)代碼中的方法與針對(duì)該方法的對(duì)應(yīng)的原生代碼的偏移的映射。在另一個(gè)示例中,該方法包括:收集字節(jié)代碼信息,以建立映射字節(jié)代碼與針對(duì)字節(jié)代碼的對(duì)應(yīng)的原生字節(jié)代碼的偏移的映射。在另一個(gè)示例中,該方法包括:在符號(hào)信息中包括具有預(yù)定義的含義的一個(gè)或者多個(gè)符號(hào)。
[0009]在一個(gè)示例中,為了編譯字節(jié)代碼,以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼,該方法包括:當(dāng)字節(jié)代碼第一次被執(zhí)行時(shí),編譯字節(jié)代碼以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼。在另一個(gè)示例中,該方法包括:在應(yīng)用的安裝時(shí)期,編譯該應(yīng)用的字節(jié)代碼。在另一個(gè)示例中,該方法包括:在電子設(shè)備的啟動(dòng)時(shí)期,編譯字節(jié)代碼。進(jìn)一步地,該方法包括:存儲(chǔ)文件,并且加載來自文件的原生代碼,用于后續(xù)的執(zhí)行。
[0010]在一個(gè)實(shí)施例中,為了在電子設(shè)備中編譯字節(jié)代碼以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼,該方法包括啟動(dòng)安卓(Android)運(yùn)行時(shí)(run time) (ART),以編譯字節(jié)代碼,以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼。
[0011]進(jìn)一步地,在一個(gè)示例中,該方法包括:生成可執(zhí)行和可鏈接格式的文件,以在文件中包括字節(jié)代碼和對(duì)應(yīng)的原生代碼。在一個(gè)實(shí)施例中,該方法包括:在用于指定動(dòng)態(tài)鏈接信息的動(dòng)態(tài)符號(hào)段中包括符號(hào)信息。
[0012]本公開的方面提供存儲(chǔ)用于使處理器執(zhí)行操作的指令的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)。該方法包括:在電子設(shè)備中,編譯字節(jié)代碼,以生成對(duì)應(yīng)于字節(jié)代碼的原生代碼;生成文件,以在文件中包括字節(jié)代碼和對(duì)應(yīng)的原生代碼;收集符號(hào)信息,以建立字節(jié)代碼中的符號(hào)與對(duì)應(yīng)的原生代碼的偏移的映射;以及在文件中包括符號(hào)信息,用于實(shí)現(xiàn)評(píng)測。
【附圖說明】
[0013]將參考以下附圖詳細(xì)地描述作為示例提出的本公開的各個(gè)實(shí)施例,其中同樣的附圖標(biāo)記引用同樣的元件,并且其中:
[0014]圖1示出了根據(jù)本公開的一個(gè)實(shí)施例的電子設(shè)備100的框圖;
[0015]圖2示出了概述根據(jù)本公開的一個(gè)實(shí)施例的過程200的流程圖;
[0016]圖3示出了概述根據(jù)本公開的一個(gè)實(shí)施例的過程300的流程圖;
[0017]圖4不出了根據(jù)本公開的一個(gè)實(shí)施例的動(dòng)態(tài)符號(hào)表400。
【具體實(shí)施方式】
[0018]圖1示出了根據(jù)本公開的一個(gè)實(shí)施例的電子設(shè)備100的框圖。電子設(shè)備100安裝有:具有編譯器151的運(yùn)行環(huán)境軟件。編譯器151被配置為將字節(jié)代碼轉(zhuǎn)換為原生代碼,并且在編譯期間收集在字節(jié)代碼中的符號(hào)到對(duì)應(yīng)的原生代碼之間的映射信息,用于實(shí)現(xiàn)性能評(píng)測。
[0019]電子設(shè)備100可以是任何合適的設(shè)備,諸如桌面計(jì)算機(jī)、便攜式計(jì)算機(jī)、移動(dòng)電話、平板、多媒體播放器、袖珍計(jì)算器、個(gè)人數(shù)字助手(PDA)、智能手表、智能相機(jī)、以及包括用來執(zhí)行軟件指令的處理器101的類似設(shè)備。
[0020]電子設(shè)備100包括硬件部件,諸如處理器101、存儲(chǔ)器模塊110、總線102等,以及軟件部件,諸如存儲(chǔ)在存儲(chǔ)器模塊110中的各種代碼指令。硬件部件根據(jù)軟件部件進(jìn)行操作以實(shí)行各種任務(wù)。
[0021]電子設(shè)備100可以包括其他合適的部件(未示出),諸如顯示器、觸摸屏、麥克風(fēng)、通信部件等。在一個(gè)實(shí)施例中,電子設(shè)備100包括單個(gè)集成電路(IC)芯片,在該單個(gè)IC芯片上集成了諸如處理器101、存儲(chǔ)器模塊110等各種電路。在另一個(gè)實(shí)施例中,電子設(shè)備100包括多個(gè)IC芯片,諸如處理器芯片、存儲(chǔ)器芯片等。
[0022]處理器101包括一個(gè)或者多個(gè)處理單元,用來執(zhí)行各種代碼指令,以實(shí)行各種任務(wù)。在一個(gè)示例中,處理器101是多核處理器,諸如雙核處理器、四核處理器等。進(jìn)一步地,處理器101可以具有任何合適的架構(gòu),諸如X86架構(gòu)、精簡指令集計(jì)算(RISC)架構(gòu)、復(fù)雜指令集計(jì)算(CISC)架構(gòu)等。在一個(gè)示例中,電子設(shè)備100是具有高級(jí)RISC機(jī)器(ARM)類型處理器的移動(dòng)設(shè)備。
[0023]代碼指令可以是可由處理器101直接地執(zhí)行的低級(jí)別代碼,諸如機(jī)器代碼(原生代碼),或者可以是可先被翻譯成機(jī)器代碼然后被執(zhí)行的高級(jí)別代碼,諸如在Java語言中的、在C語g中的等等。
[0024]存儲(chǔ)器模塊110包括為各種存儲(chǔ)需要提供存儲(chǔ)器空間的一個(gè)或者多個(gè)存儲(chǔ)介質(zhì)。在一個(gè)示例中,存儲(chǔ)器模塊110存儲(chǔ)了將由處理器101執(zhí)行的代碼指令,并且存儲(chǔ)了將由處理器101處理的數(shù)據(jù)。在另一個(gè)示例中,存儲(chǔ)器模塊110包括被分配用于系統(tǒng)存儲(chǔ)的存儲(chǔ)器空間,并且包括被分配用于用戶存儲(chǔ)的存儲(chǔ)器空間。
[0025]存儲(chǔ)介質(zhì)包括但不限于硬盤驅(qū)動(dòng)、光盤、固態(tài)驅(qū)動(dòng)、只讀存儲(chǔ)器(ROM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、閃存等。
[0026]根據(jù)本公開的一個(gè)方面,存儲(chǔ)器模塊110存儲(chǔ)了各種計(jì)算機(jī)程序,諸如系統(tǒng)程序、用戶應(yīng)用程序等。每個(gè)計(jì)算機(jī)程序包括將被執(zhí)行以實(shí)行任務(wù)的代碼指令。在圖1的示例中,在存儲(chǔ)器模塊110中存儲(chǔ)器空間120被分配用于存儲(chǔ)內(nèi)核程序。內(nèi)核程序是用于電子設(shè)備100的操作系統(tǒng)的使用戶應(yīng)用程序與電子設(shè)備100的硬件部件聯(lián)系的部分。例如,內(nèi)核程序管理來自諸如用戶應(yīng)用程序等軟件部件的輸入/輸出請(qǐng)求,并且將它們翻譯成用于諸如處理器101、存儲(chǔ)器模塊110等硬件部件的數(shù)據(jù)處理指令。
[0027]在圖1的示例中,內(nèi)核程序包括評(píng)測內(nèi)核模塊125。在一個(gè)示例中,評(píng)測內(nèi)核模塊125被配置為周期性地(例如,每50ms)引起中斷,并且在中斷例程期間獲得在處理器101中的程序計(jì)數(shù)器(PC)寄存器中的作為PC地址的值。在一個(gè)示例中,PC地址是由處理器101執(zhí)行的指令的當(dāng)前地址。
[0028]進(jìn)一步地,在圖1的示例中,在存儲(chǔ)器模塊110中存儲(chǔ)器空間150被分配用于存儲(chǔ)適合于電子設(shè)備100的運(yùn)行環(huán)境軟件。運(yùn)行環(huán)境軟件被安裝在電子設(shè)備100中以提供Java運(yùn)行環(huán)境(JRE),使得Java字節(jié)代碼可以在電子設(shè)備100中被執(zhí)行。在一個(gè)示例中,Java軟件程序被執(zhí)行,以啟動(dòng)電子設(shè)備100中的用于執(zhí)行Java字節(jié)代碼的Java虛擬機(jī)。在一個(gè)示例中,電子設(shè)備100是安卓系統(tǒng),并且存儲(chǔ)器空間150存儲(chǔ)用于安卓系統(tǒng)的安卓運(yùn)行時(shí)(ART)軟件程序。
[0029]在一個(gè)實(shí)施例中,用戶應(yīng)用的源代碼以Java語言生成。對(duì)源代碼進(jìn)行編譯,以生成用于用戶應(yīng)用的Java字節(jié)代碼。Java字節(jié)代碼可以由各種Java虛擬機(jī)執(zhí)行。在圖1的示例中,存儲(chǔ)器空間160被分配用于存儲(chǔ)用于用戶應(yīng)用的Java字節(jié)代碼(.dex文件)。為了執(zhí)行Java字節(jié)代碼,電子設(shè)備100啟動(dòng)Java虛擬機(jī)。Java虛擬機(jī)為Java字節(jié)代碼提供Java運(yùn)行環(huán)境。在執(zhí)行Java字節(jié)代碼之后,在一個(gè)示例中,Java虛擬機(jī)被終止。
[0030]根據(jù)本公開的一個(gè)方面,Java虛擬機(jī)ART將提前(ahead_of-time,Α0Τ)編譯用于Java字節(jié)代碼的執(zhí)行,以改善應(yīng)用性能。Java虛擬機(jī)ART包括被配置用于將Java字節(jié)代碼轉(zhuǎn)換為用于電子設(shè)備100的原生代碼的編譯器151。在一個(gè)示例中,當(dāng)Java虛擬機(jī)ART第一次執(zhí)行以Java字節(jié)代碼形式的用戶應(yīng)用諸如存儲(chǔ)在存儲(chǔ)器空間160處的用戶應(yīng)用時(shí),編譯器151對(duì)用戶應(yīng)用進(jìn)行編譯,以將Jav
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1