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

用于縮短java程序中的類加載處理的系統(tǒng)和方法

文檔序號:6381678閱讀:287來源:國知局
專利名稱:用于縮短java程序中的類加載處理的系統(tǒng)和方法
技術領域
本發(fā)明涉及一種用于縮短Java程序中的類加載處理的系統(tǒng)和方法。具體地說,本發(fā)明涉及一種用于縮短Java程序中的類加載處理的系統(tǒng)和方法,其中,在執(zhí)行Java程序中的類加載處理所產生的運行時數(shù)據(jù)被以圖像的形式存儲,然后在日后執(zhí)行所述Java程序時檢索并執(zhí)行所存儲的運行時數(shù)據(jù),借此縮短所述的類加載時間。
背景技術
最近,隨著移動終端使用的逐漸增加,運行于移動終端的Java程序(例如游戲、軟件包(messenger)等)的規(guī)模變得較大。
但是,為了執(zhí)行一個Java程序,應當首先在Java虛擬機(JVM)中執(zhí)行類加載處理。另外,為了完成所述的類加載處理,還應當執(zhí)行包括加載、鏈接、初始化等的處理。此外,所述鏈接處理包括認證、準備、分解等處理。因此,存在大量的時間被花費在執(zhí)行所述的類加載處理上的問題。
特別是,對于相同字節(jié)的代碼,可以只在最初執(zhí)行所述Java程序時才執(zhí)行所述類加載處理當中的認證處理。但是,當前的類加載處理被設計成無論在什么時候執(zhí)行所述Java程序都要執(zhí)行所述認證處理。由此,傳統(tǒng)的類加載處理存在下述問題,即,在諸如具有低性能CPU和低容量電池的移動終端的系統(tǒng)中,系統(tǒng)的響應時間增加并且電池被很快的耗盡。
另外,隨著Java程序的規(guī)模變得更大時,加載該程序所花費的時間逐步地增加。因此,在這種情況下,與系統(tǒng)響應時間和電池壽命相關的上述問題變得更加嚴重。

發(fā)明內容
本發(fā)明試圖解決上述問題。本發(fā)明的一個目的是提供一種用于縮短Java程序中的類加載處理的系統(tǒng)和方法,其中,在執(zhí)行Java程序中的類加載處理所產生的運行時數(shù)據(jù)被以圖像的形式存儲,并且在日后執(zhí)行所述Java程序時檢索和執(zhí)行所存儲的運行時數(shù)據(jù),借此以縮短類加載的時間。
本發(fā)明的另一個目的是提供一種用于縮短Java程序中的類加載處理的系統(tǒng)和方法,其中,改善了在裝備有低性能CPU和/或低容量電池的情況下,所述Java程序的處理速度,借此,減少了對用戶的響應時間和節(jié)省了電池能量。
根據(jù)用于實現(xiàn)所述目的的本發(fā)明的一個方面,提供了一種用于縮短Java程序中的類加載處理的系統(tǒng),包括類加載器單元,用于從輔助存儲器加載Java程序的類文件,執(zhí)行鏈接和初始化處理并產生運行時數(shù)據(jù);第一存儲器單元,用于將由所述的類加載器單元產生的所述運行時數(shù)據(jù)保持在可訪問狀態(tài);第二存儲器單元,用于存儲已經加載到所述第一存儲器單元中、處于可訪問狀態(tài)的所述運行時數(shù)據(jù);運行時數(shù)據(jù)搜索單元,用于根據(jù)所述的類加載器單元的請求將已經以圖像的形式存儲在所述第二存儲器單元中的所述運行時數(shù)據(jù)加載到所述第一存儲器單元中;和執(zhí)行單元,用于執(zhí)行已經加載到所述第一存儲器單元中、處于可訪問狀態(tài)的運行時數(shù)據(jù)。
附圖簡述通過下面結合附圖對本發(fā)明最佳實施例的描述,本發(fā)明的上述和其它目的和特性將變得明顯。其中

圖1簡要示出了根據(jù)本發(fā)明用于縮短Java程序中所述類加載處理的系統(tǒng)的方框圖;圖2簡要示出了根據(jù)本發(fā)明用于縮短Java程序中所述類加載處理的方法的流程圖;和圖3特別示出了圖2中所示的產生運行時數(shù)據(jù)的處理的流程圖。
具體實施例方式
下面將結合附圖詳細描述本發(fā)明的最佳實施例。
圖1簡要示出了用于縮短Java程序中所述類加載處理的系統(tǒng)的方框圖。該系統(tǒng)包括類加載器單元100、第一存儲器單元200、運行時數(shù)據(jù)搜索單元300、第二存儲器單元400、執(zhí)行單元500和無用數(shù)據(jù)收集器單元600。
類加載器單元100加載來自一個輔助存儲器的Java程序的類文件,執(zhí)行鏈接和初始化處理,然后產生運行時數(shù)據(jù)。這里,所述加載處理是指將位于所述輔助存儲器中的所述類文件加載到一個Java虛擬機中的處理。另外,所述鏈接處理是指使得所加載的類文件被處理成它們能夠被所述Java虛擬機執(zhí)行的狀態(tài),并且包括認證、準備和分解等處理。所述運行時數(shù)據(jù)被加載到第一存儲器單元200中并用于執(zhí)行所述Java程序。所述運行時數(shù)據(jù)可以被理解為常數(shù)池、方法表和字段表等。
第一存儲器單元200將由類加載器單元100產生的運行時數(shù)據(jù)保持在可訪問狀態(tài)。即,由所述類加載器單元100產生的所述運行時數(shù)據(jù)被存儲在預定存儲區(qū)域內,從而使下面將要描述的執(zhí)行單元500能夠訪問所存儲的運行時數(shù)據(jù)。
第二存儲器單元400以圖像的形式存儲已經以可訪問狀態(tài)存儲在第一存儲器單元200中的所述運行時數(shù)據(jù)。
運行時數(shù)據(jù)搜索單元300根據(jù)類加載器單元100的請求將存儲在第二存儲器單元400中的所述運行時數(shù)據(jù)加載到第一存儲器單元200中。另外,運行時數(shù)據(jù)搜索單元300將已經由類加載器單元100產生的運行時數(shù)據(jù)以圖像的形式存儲到第二存儲器單元400中。另外,運行時數(shù)據(jù)搜索單元300通過使用最近最少使用的(LRU)方法管理已經以圖像形式存儲在第二存儲器單元400中的所述運行時數(shù)據(jù)。這里,根據(jù)所述LRU方法,按照較少使用的順序檢查并刪除所存儲數(shù)據(jù)當中很少使用的數(shù)據(jù)。
執(zhí)行單元500執(zhí)行以可訪問狀態(tài)加載到第一存儲器單元200中的所述運行時數(shù)據(jù)。
無用數(shù)據(jù)收集器單元600收集在第一存儲器單元200中未使用的存儲區(qū)域,以便允許所述未使用的區(qū)域被再次使用,借此確保第一存儲器單元200中更多的可用區(qū)域。
圖2簡要示出了根據(jù)本發(fā)明用于縮短Java程序中所述類加載處理的方法的流程圖。
首先,類加載器單元100請求運行時數(shù)據(jù)搜索單元300搜索執(zhí)行一個Java程序所需的運行時數(shù)據(jù)(S100),然后,運行時數(shù)據(jù)搜索單元300在第二存儲器單元400中搜索是否存在所述運行時數(shù)據(jù)(S110)。
如果在第二存儲器單元400中發(fā)現(xiàn)相關的運行時數(shù)據(jù)(S120),則搜索到的運行時數(shù)據(jù)被發(fā)送給第一存儲器單元200(S125)。然后,執(zhí)行單元500執(zhí)行發(fā)送給第一存儲器單元200的所述運行時數(shù)據(jù)(S160)。這里,存儲在第二存儲器單元400中的所述運行時數(shù)據(jù)可以是圖像文件,即在其中以圖像形式存儲了執(zhí)行各種Java程序所產生的所述運行時數(shù)據(jù)的文件。
同時,根據(jù)本發(fā)明,在前已經產生和存儲在第二存儲器單元400中的所述運行時數(shù)據(jù)被簡單地加載到第一存儲器單元200中并被執(zhí)行。由此,不必在任何執(zhí)行所述Java程序的時候產生所述運行時數(shù)據(jù),借此,消除了產生所述運行時數(shù)據(jù)所需的復雜的加載處理。因此,可以減少類加載時間。
另外,如果作為由運行時數(shù)據(jù)搜索單元300進行的第二存儲器單元400的搜索的結果是不存在相關的運行時數(shù)據(jù),則類加載器單元100產生執(zhí)行所述Java程序所需的運行時數(shù)據(jù)(S130)。
下面結合圖3討論產生運行時數(shù)據(jù)的處理。首先,從輔助存儲器加載所述Java程序的類文件(S132),通過對所加載的類文件進行鏈接和初始化處理產生所述運行時數(shù)據(jù)(S134到S138)。這里,所述加載處理是指將位于所述輔助存儲器中的所述類文件加載到所述Java虛擬機中的處理;所述類文件鏈接處理是指使得所加載的類文件被處理成它們能夠被所述Java虛擬機執(zhí)行的狀態(tài)的處理。具體地說,所述鏈接處理包括用于認證所加載的類文件是否包含正確的類格式的認證處理、分配存儲器區(qū)域的準備處理、和將所述的類文件轉換為可執(zhí)行文件的分解處理。
在執(zhí)行鏈接處理之后,所述類文件被初始化并產生所述運行時數(shù)據(jù)。運行時數(shù)據(jù)搜索單元300將所產生的運行時數(shù)據(jù)以圖像的形式存儲在第二存儲器單元400中(S140)。此時,運行時數(shù)據(jù)搜索單元300根據(jù)所述LRU方法管理存儲在第二存儲器單元400中的圖像數(shù)據(jù)。即,由于第二存儲器單元400的存儲區(qū)域是有限的,所以,使用所述LRU方法來管理所存儲的數(shù)據(jù)。
然后,運行時數(shù)據(jù)搜索單元300將以圖像形式存儲的所述運行時數(shù)據(jù)發(fā)送給第一存儲器單元200(S150),和執(zhí)行單元500執(zhí)行發(fā)送給第一存儲器單元200的所述運行時圖像數(shù)據(jù)(S160)。這里,如果第一存儲器單元300缺少用于數(shù)據(jù)加載的空間,那么,無用數(shù)據(jù)收集器單元600收集第一存儲器單元200中未使用的空間,并允許所收集的空間被再次使用,借此,確保在第一存儲器單元200中的更多的空間。
或者,可以在步驟S160之后執(zhí)行步驟S140。即,當產生所述運行時數(shù)據(jù)時(S130),將所產生的運行時數(shù)據(jù)發(fā)送給第一存儲器單元200(S150)并執(zhí)行所發(fā)送的運行時數(shù)據(jù)(S160)。然后,在所述Java程序被執(zhí)行完畢之后,所述運行時數(shù)據(jù)可以被存儲在第二存儲器單元400中。
根據(jù)本發(fā)明,在執(zhí)行Java程序中所述類加載處理產生的運行時數(shù)據(jù)被以圖像的形式存儲,并在日后執(zhí)行所述Java程序時檢索并執(zhí)行所存儲的運行時數(shù)據(jù),借此,可以在不執(zhí)行復雜的類加載處理的情況下執(zhí)行所述Java程序。由此,存在一個優(yōu)點,即在執(zhí)行一個Java程序時可以縮短類加載時間。
另外,改善了在裝備有低性能CPU和/或低容量電池的情形下Java程序的處理速度,借此,減少了對用戶的響應時間并節(jié)省了電池能量。
雖然已經結合附圖中所示的實施例對本發(fā)明進行了描述,但它們僅僅是本發(fā)明的一些例子。本領域的普通技術人員可以理解,在不脫離由權利要求書所限定的本發(fā)明的范圍和精神的前提下,可以對其進行各種改變和修改。因此,對本發(fā)明實施例的簡單的改變在本發(fā)明的范圍之內。
權利要求
1.一種用于縮短Java程序中的類加載處理的系統(tǒng),包括類加載器單元,用于從輔助存儲器加載Java程序的類文件,執(zhí)行鏈接和初始化處理并產生運行時數(shù)據(jù);第一存儲器單元,用于將由所述的類加載器單元產生的所述運行時數(shù)據(jù)保持在可訪問狀態(tài);第二存儲器單元,用于以圖像的形式存儲已經加載到所述第一存儲器單元中、處于可訪問狀態(tài)的所述運行時數(shù)據(jù);運行時數(shù)據(jù)搜索單元,用于根據(jù)所述的類加載器單元的請求將已經被以圖像形式存儲在所述第二存儲器單元中的所述運行時數(shù)據(jù)加載到所述第一存儲器單元中;和執(zhí)行單元,用于執(zhí)行已經加載到所述第一存儲器單元中、處于可訪問狀態(tài)的所述運行時數(shù)據(jù)。
2.根據(jù)權利要求1所述的系統(tǒng),還包括一個無用數(shù)據(jù)收集器單元,用于收集所述第一存儲器單元中未使用的空間,并允許所述未使用的空間被再次使用。
3.根據(jù)權利要求1所述的系統(tǒng),其中,所述運行時數(shù)據(jù)搜索單元使得由所述的類加載器單元產生的所述運行時數(shù)據(jù)以圖像的形式被存儲在所述第二存儲器單元中。
4.根據(jù)權利要求1所述的系統(tǒng),其中,所述運行時數(shù)據(jù)搜索單元通過使用最近最少使用(LRU)方法管理已經以圖像形式存儲在所述第二存儲器單元中的所述運行時數(shù)據(jù)。
5.根據(jù)權利要求3所述的系統(tǒng),其中,所述運行時數(shù)據(jù)搜索單元通過使用最近最少使用(LRU)方法管理已經以圖像形式存儲在所述第二存儲器單元中的所述運行時數(shù)據(jù)。
6.一種用于縮短Java程序中的類加載處理的方法,包括下述步驟類加載器單元請求運行時數(shù)據(jù)搜索單元搜索執(zhí)行所述Java程序所需的運行時數(shù)據(jù);運行時數(shù)據(jù)搜索單元搜索所請求的用于所述Java程序的運行時數(shù)據(jù);將搜索到的運行時數(shù)據(jù)發(fā)送給第一存儲器單元;和執(zhí)行發(fā)送給所述第一存儲器單元的所述運行時數(shù)據(jù)。
7.根據(jù)權利要求6所述的方法,其中,所述搜索到的運行時數(shù)據(jù)以圖像的形式存儲在第二存儲器單元中。
8.根據(jù)權利要求7所述的方法,其中,所述運行時數(shù)據(jù)搜索單元根據(jù)最近最少使用(LRU)方法管理存儲在所述第二存儲器單元中的所述運行時數(shù)據(jù)。
9.根據(jù)權利要求6所述的方法,還包括下述步驟如果從所請求的用于所述Java程序的運行時數(shù)據(jù)的搜索結果確定不存在相關的運行時數(shù)據(jù),則從一個輔助存儲器加載Java程序的類文件;通過執(zhí)行所加載的Java程序類文件的鏈接和初始化處理產生運行時數(shù)據(jù);以圖像的形式存儲所產生的運行時數(shù)據(jù);和將所述運行時圖像數(shù)據(jù)發(fā)送給所述第一存儲器單元。
10.根據(jù)權利要求9所述的方法,其中,在執(zhí)行發(fā)送到所述第一存儲器單元的所述運行時數(shù)據(jù)之后,執(zhí)行以圖像形式存儲所產生的運行時數(shù)據(jù)的步驟。
11.根據(jù)權利要求9所述的方法,其中,所述運行時搜索單元根據(jù)最近最少使用(LRU)方法管理所存儲的運行時圖像數(shù)據(jù)。
全文摘要
一種根據(jù)本發(fā)明的用于縮短Java程序中的類加載處理的系統(tǒng),其包括類加載器單元,用于從輔助存儲器加載Java程序的類文件,執(zhí)行鏈接和初始化處理并產生運行時數(shù)據(jù);第一存儲器單元,用于將由所述類加載器單元產生的運行時數(shù)據(jù)保持在可訪問狀態(tài);第二存儲器單元,用于以圖像的形式存儲已經被加載到第一存儲器單元中的、處于可訪問狀態(tài)的運行時數(shù)據(jù);運行時數(shù)據(jù)搜索單元,用于根據(jù)類加載器單元的請求將已經以圖像形式存儲在第二存儲器單元中的運行時數(shù)據(jù)加載到第一存儲器單元中;和執(zhí)行單元,用于執(zhí)行已經加載到第一存儲器單元中、處于可訪問狀態(tài)的運行時數(shù)據(jù)。
文檔編號G06F9/44GK1519709SQ200410003658
公開日2004年8月11日 申請日期2004年2月5日 優(yōu)先權日2003年2月7日
發(fā)明者崔智暎, 宋孝晶, 樸正圭, 崔智 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
彰化县| 乐陵市| 商水县| 永宁县| 富源县| 伊川县| 钟祥市| 临湘市| 崇左市| 横山县| 九龙城区| 新蔡县| 故城县| 平乡县| 黎川县| 修文县| 乃东县| 绵竹市| 临颍县| 克什克腾旗| 玉树县| 朝阳市| 苍梧县| 游戏| 夏津县| 汕尾市| 兴宁市| 大埔县| 和硕县| 秦安县| 石泉县| 大竹县| 克什克腾旗| 黑山县| 南江县| 广汉市| 颍上县| 扬州市| 新泰市| 永吉县| 米脂县|