[發(fā)明專利]基于嵌入式實時Java虛擬機的預先類加載方法及裝置有效
| 申請?zhí)枺?/td> | 201010588216.6 | 申請日: | 2010-12-14 |
| 公開(公告)號: | CN102567033A | 公開(公告)日: | 2012-07-11 |
| 發(fā)明(設計)人: | 曹東剛;荀娜;梅宏 | 申請(專利權(quán))人: | 北京大學 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 劉芳 |
| 地址: | 100871 北京市海淀區(qū)頤*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 嵌入式 實時 java 虛擬機 預先 加載 方法 裝置 | ||
技術領域
本發(fā)明涉及類加載技術,尤其涉及基于嵌入式實時Java虛擬機的預先類加載方法及裝置。
背景技術
Java平臺到現(xiàn)在為止已經(jīng)擁有廣大的開發(fā)者的基礎,其應用領域從最初的服務器和桌面領域擴展到了實時和嵌入式領域。然而與傳統(tǒng)計算環(huán)境不同的是,嵌入式實時計算是一種計算資源受限的計算,同時又要求虛擬機運行有較高的確定性。
目前類加載有預先加載與依需求加載兩種機制。Java運行環(huán)境為了優(yōu)化系統(tǒng),提高程序的執(zhí)行速度,在JRE(Java?Runtime?Enviroment,Java運行環(huán)境)運行的開始會將Java運行所需要的基本類采用預先加載的方法全部加載到內(nèi)存當中,因為這些基本類是在Java程序運行的過程當中經(jīng)常要使用的,主要包括JRE的rt.jar文件里面所有的.clas文件。當Java虛擬機開始運行以后,它會找到安裝在機器上的JRE環(huán)境,然后把控制權(quán)交給JRE,JRE的類加載器會將lib目錄下的rt.jar基礎類別文件庫加載進內(nèi)存,這些文件是Java程序執(zhí)行所必須的,包括java.lang.Object和java.lang.ClassLoader等。系統(tǒng)在開始就將這些文件加載,能夠避免在以后使用過程中的多次I/O操作,從而提高程序執(zhí)行效率。相對于預先加載,在程序中還需要使用一些自定義的類,當使用這些自定義類的時候就要使用依需求加載方法,即在Java程序需要用到的時候再加載,以減少內(nèi)存的消耗。
對于實時嵌入式計算環(huán)境,若能夠進行類加載,也可大幅提高程序的運行效率。但現(xiàn)有的類加載方法,一方面,由于對于除基本類以外的其他類需在程序執(zhí)行過程中進行加載,導致了加載時間的不確定性,不能夠滿足實時的要求;另一方面,類加載器和核心庫類的資源極為龐大,嵌入式系統(tǒng)的資源有限,不能夠承載現(xiàn)有的類加載器和核心庫類。因此,現(xiàn)有技術中,不能將類加載方法應用于實時嵌入式計算環(huán)境。
發(fā)明內(nèi)容
針對上述缺陷,本發(fā)明提供一種基于嵌入式實時Java虛擬機的預先類加載方法,包括:
修改類加載器的java類文件,設置用于根據(jù)類的列表進行類加載的加載方法;
修改虛擬機內(nèi)核的jni類,設置用于調(diào)用所述加載方法以預先加載應用程序所需的全部類的預先類加載方法;
獲取包含應用程序所需的全部類的類列表;
根據(jù)所述預先類加載方法,依照所述類列表預先加載所述應用程序所需的全部類。
根據(jù)本發(fā)明的另一方面,還提供一種基于嵌入式實時Java虛擬機的預先類加載裝置,包括:
第一設置模塊,用于在類加載器的java類文件中設置用于根據(jù)類的列表進行類加載的加載方法;
第二設置模塊,用于在虛擬機內(nèi)核的jni類中設置用于調(diào)用所述加載方法以預先加載應用程序所需的全部類的預先類加載方法;
獲取模塊,用于獲取包含應用程序所需的全部類的類列表;
預加載模塊,用于根據(jù)所述預先類加載方法,依照所述類列表預先加載所述應用程序所需的全部類。
根據(jù)本發(fā)明的基于嵌入式實時Java虛擬機的預先類加載方法及裝置,由于預先獲取了應用程序所需的全部類,并通過設置預先類加載方法,實現(xiàn)了在嵌入式實時Java虛擬機中,預先加載所需的全部類,從而避免了在程序執(zhí)行過程中按需加載類的時間抖動所帶來不確定性;而且,由于該預先加載的內(nèi)容僅為應用程序所需的全部類,不包括類加載器和核心類庫中的應用程序不需要的大量類資源,因此能夠適應嵌入式系統(tǒng)的有限資源;從而,實現(xiàn)了在嵌入式實時Java虛擬機中的預先類加載。
附圖說明
圖1為本發(fā)明基于嵌入式實時Java虛擬機的預先類加載方法。
圖2為本發(fā)明基于嵌入式實時Java虛擬機的預先類加載裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合附圖,對本發(fā)明的技術方案進行清楚、完整地描述。
圖1為本發(fā)明基于嵌入式實時Java虛擬機的預先類加載方法。如圖1所示,該預先類加載方法包括以下步驟:
步驟S100,修改類加載器的java類文件,設置用于根據(jù)類的列表進行類加載的加載方法。
步驟S200,修改虛擬機內(nèi)核的jni類,設置用于調(diào)用加載方法以預先加載應用程序所需的全部類的預先類加載方法;
步驟S300,獲取包含應用程序所需的全部類的類列表;
步驟S400,根據(jù)預先類加載方法,依照類列表預先加載所述應用程序所需的全部類。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京大學,未經(jīng)北京大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010588216.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種傳輸留言信息的方法及裝置和系統(tǒng)
- 下一篇:換檔裝置





