[发明专利]基于嵌入式实时Java虚拟机的预先类加载方法及装置有效
申请号: | 201010588216.6 | 申请日: | 2010-12-14 |
公开(公告)号: | CN102567033A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 曹东刚;荀娜;梅宏 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 100871 北京市海淀区颐*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 嵌入式 实时 java 虚拟机 预先 加载 方法 装置 | ||
技术领域
本发明涉及类加载技术,尤其涉及基于嵌入式实时Java虚拟机的预先类加载方法及装置。
背景技术
Java平台到现在为止已经拥有广大的开发者的基础,其应用领域从最初的服务器和桌面领域扩展到了实时和嵌入式领域。然而与传统计算环境不同的是,嵌入式实时计算是一种计算资源受限的计算,同时又要求虚拟机运行有较高的确定性。
目前类加载有预先加载与依需求加载两种机制。Java运行环境为了优化系统,提高程序的执行速度,在JRE(Java Runtime Enviroment,Java运行环境)运行的开始会将Java运行所需要的基本类采用预先加载的方法全部加载到内存当中,因为这些基本类是在Java程序运行的过程当中经常要使用的,主要包括JRE的rt.jar文件里面所有的.clas文件。当Java虚拟机开始运行以后,它会找到安装在机器上的JRE环境,然后把控制权交给JRE,JRE的类加载器会将lib目录下的rt.jar基础类别文件库加载进内存,这些文件是Java程序执行所必须的,包括java.lang.Object和java.lang.ClassLoader等。系统在开始就将这些文件加载,能够避免在以后使用过程中的多次I/O操作,从而提高程序执行效率。相对于预先加载,在程序中还需要使用一些自定义的类,当使用这些自定义类的时候就要使用依需求加载方法,即在Java程序需要用到的时候再加载,以减少内存的消耗。
对于实时嵌入式计算环境,若能够进行类加载,也可大幅提高程序的运行效率。但现有的类加载方法,一方面,由于对于除基本类以外的其他类需在程序执行过程中进行加载,导致了加载时间的不确定性,不能够满足实时的要求;另一方面,类加载器和核心库类的资源极为庞大,嵌入式系统的资源有限,不能够承载现有的类加载器和核心库类。因此,现有技术中,不能将类加载方法应用于实时嵌入式计算环境。
发明内容
针对上述缺陷,本发明提供一种基于嵌入式实时Java虚拟机的预先类加载方法,包括:
修改类加载器的java类文件,设置用于根据类的列表进行类加载的加载方法;
修改虚拟机内核的jni类,设置用于调用所述加载方法以预先加载应用程序所需的全部类的预先类加载方法;
获取包含应用程序所需的全部类的类列表;
根据所述预先类加载方法,依照所述类列表预先加载所述应用程序所需的全部类。
根据本发明的另一方面,还提供一种基于嵌入式实时Java虚拟机的预先类加载装置,包括:
第一设置模块,用于在类加载器的java类文件中设置用于根据类的列表进行类加载的加载方法;
第二设置模块,用于在虚拟机内核的jni类中设置用于调用所述加载方法以预先加载应用程序所需的全部类的预先类加载方法;
获取模块,用于获取包含应用程序所需的全部类的类列表;
预加载模块,用于根据所述预先类加载方法,依照所述类列表预先加载所述应用程序所需的全部类。
根据本发明的基于嵌入式实时Java虚拟机的预先类加载方法及装置,由于预先获取了应用程序所需的全部类,并通过设置预先类加载方法,实现了在嵌入式实时Java虚拟机中,预先加载所需的全部类,从而避免了在程序执行过程中按需加载类的时间抖动所带来不确定性;而且,由于该预先加载的内容仅为应用程序所需的全部类,不包括类加载器和核心类库中的应用程序不需要的大量类资源,因此能够适应嵌入式系统的有限资源;从而,实现了在嵌入式实时Java虚拟机中的预先类加载。
附图说明
图1为本发明基于嵌入式实时Java虚拟机的预先类加载方法。
图2为本发明基于嵌入式实时Java虚拟机的预先类加载装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的技术方案进行清楚、完整地描述。
图1为本发明基于嵌入式实时Java虚拟机的预先类加载方法。如图1所示,该预先类加载方法包括以下步骤:
步骤S100,修改类加载器的java类文件,设置用于根据类的列表进行类加载的加载方法。
步骤S200,修改虚拟机内核的jni类,设置用于调用加载方法以预先加载应用程序所需的全部类的预先类加载方法;
步骤S300,获取包含应用程序所需的全部类的类列表;
步骤S400,根据预先类加载方法,依照类列表预先加载所述应用程序所需的全部类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010588216.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种传输留言信息的方法及装置和系统
- 下一篇:换档装置