国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      java卡虛擬機(jī)的優(yōu)化方法及系統(tǒng)的制作方法

      文檔序號:9887455閱讀:491來源:國知局
      java卡虛擬機(jī)的優(yōu)化方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001 ]本發(fā)明涉及智能卡技術(shù)領(lǐng)域,特別涉及一種java卡虛擬機(jī)的優(yōu)化方法及系統(tǒng)。
      【背景技術(shù)】
      [0002] Java卡是Sun微系統(tǒng)為智能卡開發(fā)平臺而制定的一個開放的標(biāo)準(zhǔn)。使用Java卡平 臺創(chuàng)建的智能卡上存有Java applet (Application縮寫)。在卡發(fā)行后也可以把a(bǔ)pplet加到 卡上或修改卡上已有的applet。它們把數(shù)據(jù)存儲在一個集成的微處理器芯片里,然后 applet被下載到微處理器的非易失存儲器里,由Java虛擬機(jī)來運(yùn)行。
      [0003] Java卡充分利用了 Java語言的平臺無關(guān)性,使得"一次編寫,到處運(yùn)行"的Java思 想在智能卡上得以實(shí)現(xiàn)。相對于普通智能卡,Java卡有著平臺無關(guān)性,--^多用和重用,靈 活性,安全性等特點(diǎn)。
      [0004] 但制約Java卡發(fā)展的一個很重要的方面問題其較低的執(zhí)行效率,造成這種低效的 原因除了受限于智能卡的硬件資源和Java語言的字節(jié)碼解釋執(zhí)行機(jī)制,更主要的原因是 JCVM( Java卡虛擬機(jī))的應(yīng)用存儲結(jié)構(gòu)和相關(guān)的機(jī)制嚴(yán)重影響到Java卡虛擬機(jī)的執(zhí)行性能。

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

      [0005] 本發(fā)明的目的旨在至少解決所述技術(shù)缺陷之一。
      [0006] 為此,本發(fā)明的目的在于提出一種java卡虛擬機(jī)的優(yōu)化方法及系統(tǒng),提高了 java 卡的運(yùn)行效率,在不改變硬件設(shè)備的情況下,有效提升了 java卡虛擬機(jī)的運(yùn)行效率。
      [0007] 為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提供一種java卡虛擬機(jī)的優(yōu)化方法,包括如 下步驟:
      [0008] 步驟S1,下載java卡應(yīng)用程序,該java卡應(yīng)用程序?yàn)橐粋€cap包,其中,所述cap包 中包括有多個用于虛擬機(jī)解析執(zhí)行的組件component,以及用來索引所述component組件的 常量池組件constant pool,所述常量池組件constant_pool包括對內(nèi)部和外部應(yīng)用操作數(shù) 據(jù)的索引;
      [0009] 步驟S2,在java卡應(yīng)用程序的下載過程中,通過對所述cap包中的常量池組件 C〇nstant_p〇〇l進(jìn)行遍歷,以獲取對組件的外部引用關(guān)系,作為引用信息,再通過預(yù)操作獲 取所述引用信息所對應(yīng)的目標(biāo)信息;
      [0010] 步驟S3,將引用信息所相應(yīng)的目標(biāo)信息以擴(kuò)展的類型結(jié)構(gòu)回填到所述常量池組件 constant_pool 中;
      [0011] 步驟S4, java卡應(yīng)用程序解釋器在運(yùn)行態(tài)可以直接在所述常量池組件constant_ pool中通過修改后的結(jié)構(gòu)索引到目標(biāo)信息。
      [0012]進(jìn)一步,在所述步驟S2中,所述引用信息包括:目標(biāo)cap包引用信息、目標(biāo)cap包的 類、方法、屬性引用信息。
      [0013] 進(jìn)一步,在所述步驟S3中,
      [0014] (1)當(dāng)所述外部引用關(guān)系為方法信息時,將目標(biāo)cap包引用信息、目標(biāo)cap包的方法 偏移量回填到cons tan t_pool;
      [0015] ⑵外部引用關(guān)系為屬性信息時,將目標(biāo)cap包的對象引用信息、目標(biāo)cap包關(guān)聯(lián)靜 態(tài)對象的屬性在靜態(tài)對象中的偏移量回填到cons tan t_pool;
      [0016] (3)外部引用關(guān)系為類信息時,將目標(biāo)cap包引用信息、目標(biāo)cap包的類信息的偏移 ^[hI j4|i|J cons tan t_pool 0
      [0017]根據(jù)本發(fā)明實(shí)施例的java卡虛擬機(jī)的優(yōu)化方法,可以省去java卡應(yīng)用程序在運(yùn)行 時為定位目標(biāo)進(jìn)行的大量內(nèi)部跳轉(zhuǎn)以及外部遍歷等性能低下問題,直接定位到目標(biāo)信息, 提高了 java卡的運(yùn)行效率,在不改變硬件設(shè)備的情況下,有效提升了 java卡虛擬機(jī)的運(yùn)行 效率。
      [0018] 本發(fā)明實(shí)施例還提出一種java卡虛擬機(jī)的優(yōu)化系統(tǒng),包括:下載模塊,用于下載 java卡應(yīng)用程序,該java卡應(yīng)用程序?yàn)橐粋€cap包,其中,所述cap包中包括有多個用于虛擬 機(jī)解析執(zhí)行的組件component,以及用來索引所述component組件的常量池組件constant pool,所述常量池組件constant_pool包括對內(nèi)部和外部應(yīng)用操作數(shù)據(jù)的索引;遍歷模塊, 所述遍歷模塊與所述下載模塊相連,用于在所述下載模塊下載java卡應(yīng)用程序的過程中, 通過對所述cap包中的常量池組件constant_pool進(jìn)行遍歷,以獲取對組件的外部引用關(guān) 系,作為引用信息;預(yù)操作模塊,所述預(yù)操作模塊與所述遍歷模塊相連,用于通過預(yù)操作獲 取所述引用信息所對應(yīng)的目標(biāo)信息;回填模塊,所述回填模塊與所述預(yù)操作模塊相連,用于 將引用信息所相應(yīng)的目標(biāo)信息以擴(kuò)展的類型結(jié)構(gòu)回填到所述常量池組件c 〇nstant_p〇〇l 中,則java卡應(yīng)用程序解釋器在運(yùn)行態(tài)可以直接在所述常量池組件constant_pool中通過 修改后的結(jié)構(gòu)索引到目標(biāo)信息。
      [0019] 進(jìn)一步,所述引用信息包括:目標(biāo)cap包引用信息、目標(biāo)cap包的類、方法、屬性引用 信息。
      [0020] 進(jìn)一步,(1)當(dāng)所述外部引用關(guān)系為方法信息時,所述回填模塊將目標(biāo)cap包引用 信息、目標(biāo)cap包的方法偏移量回填到constant_pool;
      [0021] (2)外部引用關(guān)系為屬性信息時,所述回填模塊將目標(biāo)cap包的對象引用信息、目 標(biāo)cap包關(guān)聯(lián)靜態(tài)對象的屬性在靜態(tài)對象中的偏移量回填到constant_pool;
      [0022] (3)外部引用關(guān)系為類信息時,所述回填模塊將目標(biāo)cap包引用信息、目標(biāo)cap包的 類信息的偏移量回填到constant_pool。
      [0023] 根據(jù)本發(fā)明實(shí)施例的java卡虛擬機(jī)的優(yōu)化系統(tǒng),可以省去java卡應(yīng)用程序在運(yùn)行 時為定位目標(biāo)進(jìn)行的大量內(nèi)部跳轉(zhuǎn)以及外部遍歷等性能低下問題,直接定位到目標(biāo)信息, 提高了 java卡的運(yùn)行效率,在不改變硬件設(shè)備的情況下,有效提升了 java卡虛擬機(jī)的運(yùn)行 效率。
      [0024] 本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
      【附圖說明】
      [0025] 本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得 明顯和容易理解,其中:
      [0026] 圖1為根據(jù)本發(fā)明實(shí)施例的java卡虛擬機(jī)的優(yōu)化方法的流程圖;
      [0027] 圖2為根據(jù)本發(fā)明實(shí)施例的java卡虛擬機(jī)的優(yōu)化系統(tǒng)的結(jié)構(gòu)圖。
      【具體實(shí)施方式】
      [0028] 下面詳細(xì)描述本發(fā)明的實(shí)施例,實(shí)施例的示例在附圖中示出,其中自始至終相同 或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描 述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
      [0029] 本發(fā)明提供一種java卡虛擬機(jī)的優(yōu)化方法及系統(tǒng),在應(yīng)用下載的過程中對需要查 詢引用操作的import數(shù)據(jù)、class數(shù)據(jù)、field數(shù)據(jù)和static method數(shù)據(jù)進(jìn)行預(yù)判和定位, 并修改應(yīng)用內(nèi)容和結(jié)構(gòu)為對以上數(shù)據(jù)的直接引用。本發(fā)明基于Java卡對象的生命周期特點(diǎn) 對Java虛擬機(jī)進(jìn)行優(yōu)化以滿足Java卡業(yè)務(wù)對效率的要求,達(dá)到在執(zhí)行過程中減少查詢、遍 歷和跳轉(zhuǎn)等操作,進(jìn)而提高Java卡虛擬機(jī)的解析和運(yùn)行效率。
      [0030] 如圖1所示,本發(fā)明實(shí)施例的java卡虛擬機(jī)的優(yōu)化方法,包括如下步驟:
      [0031 ] 步驟S1,下載java卡應(yīng)用程序,該java卡應(yīng)用程序?yàn)橐粋€cap包。
      [0032]具體地,每個java卡應(yīng)用程序均是以cap包為單位,即一個java卡應(yīng)用程序就是一 個cap包。每個cap包中包括有多個用于虛擬機(jī)解析執(zhí)行的組件component,以及用來索引 component組件的常量池組件constant pool。常量池組件constant_pool包括對內(nèi)部和外 部應(yīng)用操作數(shù)據(jù)的索引。
      [0033]例如,在java卡內(nèi)使用可實(shí)現(xiàn)空間動態(tài)管理的數(shù)據(jù)結(jié)構(gòu),堆(Heap)來管理可編程 存儲器,所有包和對象都存儲在Heap中。其中,用來索引Heap中單元的引用定義為HEAPREF, 指向Heap中包類型數(shù)據(jù)的HEAPREF定義為CAPREF,指向Heap中對象類型數(shù)據(jù)的HEAPREF定義 為0BJREF,類引用CLAREF采用CAPREF和cap內(nèi)部偏移索引類信息,方法引用MSTREF采用 CAPREF和cap內(nèi)部偏移索引類信息。每個對象都包含多個屬性,每個屬性都要占用一定存儲 空間,某一具體屬性在對象空間的內(nèi)部偏移定義為FLD0FF。常量池用來存儲常量信息。 [0034] 步驟S2,在java卡應(yīng)用程序的下載過程中,通過對cap包中的常量池組件 C〇nstant_p〇〇l進(jìn)行遍歷,以獲取對組件的外部引用關(guān)系,作為引用信息,再通過預(yù)操作獲 取引用信息所對應(yīng)的目標(biāo)信息。
      [0035]在本發(fā)明的一個實(shí)施例中,引用信息包括:目標(biāo)cap包引用信息、目標(biāo)cap包的類
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1