用于缩短java程序中的类加载处理的系统和方法

上传人:ting****789 文档编号:310026154 上传时间:2022-06-14 格式:DOCX 页数:3 大小:17.89KB
返回 下载 相关 举报
用于缩短java程序中的类加载处理的系统和方法_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《用于缩短java程序中的类加载处理的系统和方法》由会员分享,可在线阅读,更多相关《用于缩短java程序中的类加载处理的系统和方法(3页珍藏版)》请在金锄头文库上搜索。

1、用于缩短java程序中的类加载处理的系统和方法专利名称:用于缩短java程序中的类加载处理的系统和方法技术领域:本发明涉及一种用于缩短Java程序中的类加载处理的系统和方法。具体地说,本发明涉及一种用于缩短Java程序中的类加载处理的系统和方法,其中,在执行Java程序中的类加载处理所产生的运行时数据被以图像的形式存储,然后在日后执行所述Java程序时检索并执行所存储的运行时数据,借此缩短所述的类加载时间。背景技术: 最近,随着移动终端使用的逐渐增加,运行于移动终端的Java程序(例如游戏、软件包(messenger)等)的规模变得较大。但是,为了执行一个Java程序,应当首先在Java虚拟机

2、(JVM)中执行类加载处理。另外,为了完成所述的类加载处理,还应当执行包括加载、链接、初始化等的处理。此外,所述链接处理包括认证、准备、分解等处理。因此,存在大量的时间被花费在执行所述的类加载处理上的问题。特别是,对于相同字节的代码,可以只在最初执行所述Java程序时才执行所述类加载处理当中的认证处理。但是,当前的类加载处理被设计成无论在什么时候执行所述Java程序都要执行所述认证处理。由此,传统的类加载处理存在下述问题,即,在诸如具有低性能CPU和低容量电池的移动终端的系统中,系统的响应时间增加并且电池被很快的耗尽。另外,随着Java程序的规模变得更大时,加载该程序所花费的时间逐步地增加。因

3、此,在这种情况下,与系统响应时间和电池寿命相关的上述问题变得更加严重。发明内容本发明试图解决上述问题。本发明的一个目的是提供一种用于缩短Java程序中的类加载处理的系统和方法,其中,在执行Java程序中的类加载处理所产生的运行时数据被以图像的形式存储,并且在日后执行所述Java程序时检索和执行所存储的运行时数据,借此以缩短类加载的时间。本发明的另一个目的是提供一种用于缩短Java程序中的类加载处理的系统和方法,其中,改善了在装备有低性能CPU和/或低容量电池的情况下,所述Java程序的处理速度,借此,减少了对用户的响应时间和节省了电池能量。根据用于实现所述目的的本发明的一个方面,提供了一种用于

4、缩短Java程序中的类加载处理的系统,包括类加载器单元,用于从辅助存储器加载Java程序的类文件,执行链接和初始化处理并产生运行时数据;第一存储器单元,用于将由所述的类加载器单元产生的所述运行时数据保持在可访问状态;第二存储器单元,用于存储已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据;运行时数据搜索单元,用于根据所述的类加载器单元的请求将已经以图像的形式存储在所述第二存储器单元中的所述运行时数据加载到所述第一存储器单元中;和执行单元,用于执行已经加载到所述第一存储器单元中、处于可访问状态的运行时数据。附图简述通过下面结合附图对本发明最佳实施例的描述,本发明的上述和其它目的和特

5、性将变得明显。其中图1简要示出了根据本发明用于缩短Java程序中所述类加载处理的系统的方框图;图2简要示出了根据本发明用于缩短Java程序中所述类加载处理的方法的流程图;和图3特别示出了图2中所示的产生运行时数据的处理的流程图。具体实施例方式下面将结合附图详细描述本发明的最佳实施例。图1简要示出了用于缩短Java程序中所述类加载处理的系统的方框图。该系统包括类加载器单元100、第一存储器单元200、运行时数据搜索单元300、第二存储器单元400、执行单元500和无用数据收集器单元600。类加载器单元100加载来自一个辅助存储器的Java程序的类文件,执行链接和初始化处理,然后产生运行时数据。这

6、里,所述加载处理是指将位于所述辅助存储器中的所述类文件加载到一个Java虚拟机中的处理。另外,所述链接处理是指使得所加载的类文件被处理成它们能够被所述Java虚拟机执行的状态,并且包括认证、准备和分解等处理。所述运行时数据被加载到第一存储器单元200中并用于执行所述Java程序。所述运行时数据可以被理解为常数池、方法表和字段表等。第一存储器单元200将由类加载器单元100产生的运行时数据保持在可访问状态。即,由所述类加载器单元100产生的所述运行时数据被存储在预定存储区域内,从而使下面将要描述的执行单元500能够访问所存储的运行时数据。第二存储器单元400以图像的形式存储已经以可访问状态存储在

7、第一存储器单元200中的所述运行时数据。运行时数据搜索单元300根据类加载器单元100的请求将存储在第二存储器单元400中的所述运行时数据加载到第一存储器单元200中。另外,运行时数据搜索单元300将已经由类加载器单元100产生的运行时数据以图像的形式存储到第二存储器单元400中。另外,运行时数据搜索单元300通过使用最近最少使用的(LRU)方法管理已经以图像形式存储在第二存储器单元400中的所述运行时数据。这里,根据所述LRU方法,按照较少使用的顺序检查并删除所存储数据当中很少使用的数据。执行单元500执行以可访问状态加载到第一存储器单元200中的所述运行时数据。无用数据收集器单元600收集

8、在第一存储器单元200中未使用的存储区域,以便允许所述未使用的区域被再次使用,借此确保第一存储器单元200中更多的可用区域。图2简要示出了根据本发明用于缩短Java程序中所述类加载处理的方法的流程图。首先,类加载器单元100请求运行时数据搜索单元300搜索执行一个Java程序所需的运行时数据(S100),然后,运行时数据搜索单元300在第二存储器单元400中搜索是否存在所述运行时数据(S110)。如果在第二存储器单元400中发现相关的运行时数据(S120),则搜索到的运行时数据被发送给第一存储器单元200(S125)。然后,执行单元500执行发送给第一存储器单元200的所述运行时数据(S160

9、)。这里,存储在第二存储器单元400中的所述运行时数据可以是图像文件,即在其中以图像形式存储了执行各种Java程序所产生的所述运行时数据的文件。同时,根据本发明,在前已经产生和存储在第二存储器单元400中的所述运行时数据被简单地加载到第一存储器单元200中并被执行。由此,不必在任何执行所述Java程序的时候产生所述运行时数据,借此,消除了产生所述运行时数据所需的复杂的加载处理。因此,可以减少类加载时间。另外,如果作为由运行时数据搜索单元300进行的第二存储器单元400的搜索的结果是不存在相关的运行时数据,则类加载器单元100产生执行所述Java程序所需的运行时数据(S130)。下面结合图3讨论

10、产生运行时数据的处理。首先,从辅助存储器加载所述Java程序的类文件(S132),通过对所加载的类文件进行链接和初始化处理产生所述运行时数据(S134到S138)。这里,所述加载处理是指将位于所述辅助存储器中的所述类文件加载到所述Java虚拟机中的处理;所述类文件链接处理是指使得所加载的类文件被处理成它们能够被所述Java虚拟机执行的状态的处理。具体地说,所述链接处理包括用于认证所加载的类文件是否包含正确的类格式的认证处理、分配存储器区域的准备处理、和将所述的类文件转换为可执行文件的分解处理。在执行链接处理之后,所述类文件被初始化并产生所述运行时数据。运行时数据搜索单元300将所产生的运行时数

11、据以图像的形式存储在第二存储器单元400中(S140)。此时,运行时数据搜索单元300根据所述LRU方法管理存储在第二存储器单元400中的图像数据。即,由于第二存储器单元400的存储区域是有限的,所以,使用所述LRU方法来管理所存储的数据。然后,运行时数据搜索单元300将以图像形式存储的所述运行时数据发送给第一存储器单元200(S150),和执行单元500执行发送给第一存储器单元200的所述运行时图像数据(S160)。这里,如果第一存储器单元300缺少用于数据加载的空间,那么,无用数据收集器单元600收集第一存储器单元200中未使用的空间,并允许所收集的空间被再次使用,借此,确保在第一存储器单

12、元200中的更多的空间。或者,可以在步骤S160之后执行步骤S140。即,当产生所述运行时数据时(S130),将所产生的运行时数据发送给第一存储器单元200(S150)并执行所发送的运行时数据(S160)。然后,在所述Java程序被执行完毕之后,所述运行时数据可以被存储在第二存储器单元400中。根据本发明,在执行Java程序中所述类加载处理产生的运行时数据被以图像的形式存储,并在日后执行所述Java程序时检索并执行所存储的运行时数据,借此,可以在不执行复杂的类加载处理的情况下执行所述Java程序。由此,存在一个优点,即在执行一个Java程序时可以缩短类加载时间。另外,改善了在装备有低性能CPU

13、和/或低容量电池的情形下Java程序的处理速度,借此,减少了对用户的响应时间并节省了电池能量。虽然已经结合附图中所示的实施例对本发明进行了描述,但它们仅仅是本发明的一些例子。本领域的普通技术人员可以理解,在不脱离由权利要求书所限定的本发明的范围和精神的前提下,可以对其进行各种改变和修改。因此,对本发明实施例的简单的改变在本发明的范围之内。权利要求1.一种用于缩短Java程序中的类加载处理的系统,包括类加载器单元,用于从辅助存储器加载Java程序的类文件,执行链接和初始化处理并产生运行时数据;第一存储器单元,用于将由所述的类加载器单元产生的所述运行时数据保持在可访问状态;第二存储器单元,用于以图

14、像的形式存储已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据;运行时数据搜索单元,用于根据所述的类加载器单元的请求将已经被以图像形式存储在所述第二存储器单元中的所述运行时数据加载到所述第一存储器单元中;和执行单元,用于执行已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据。2.根据权利要求1所述的系统,还包括一个无用数据收集器单元,用于收集所述第一存储器单元中未使用的空间,并允许所述未使用的空间被再次使用。3.根据权利要求1所述的系统,其中,所述运行时数据搜索单元使得由所述的类加载器单元产生的所述运行时数据以图像的形式被存储在所述第二存储器单元中。4.根据权利要求1所

15、述的系统,其中,所述运行时数据搜索单元通过使用最近最少使用(LRU)方法管理已经以图像形式存储在所述第二存储器单元中的所述运行时数据。5.根据权利要求3所述的系统,其中,所述运行时数据搜索单元通过使用最近最少使用(LRU)方法管理已经以图像形式存储在所述第二存储器单元中的所述运行时数据。6.一种用于缩短Java程序中的类加载处理的方法,包括下述步骤类加载器单元请求运行时数据搜索单元搜索执行所述Java程序所需的运行时数据;运行时数据搜索单元搜索所请求的用于所述Java程序的运行时数据;将搜索到的运行时数据发送给第一存储器单元;和执行发送给所述第一存储器单元的所述运行时数据。7.根据权利要求6所

16、述的方法,其中,所述搜索到的运行时数据以图像的形式存储在第二存储器单元中。8.根据权利要求7所述的方法,其中,所述运行时数据搜索单元根据最近最少使用(LRU)方法管理存储在所述第二存储器单元中的所述运行时数据。9.根据权利要求6所述的方法,还包括下述步骤如果从所请求的用于所述Java程序的运行时数据的搜索结果确定不存在相关的运行时数据,则从一个辅助存储器加载Java程序的类文件;通过执行所加载的Java程序类文件的链接和初始化处理产生运行时数据;以图像的形式存储所产生的运行时数据;和将所述运行时图像数据发送给所述第一存储器单元。10.根据权利要求9所述的方法,其中,在执行发送到所述第一存储器单元的所述运行时数据之后,执行以图像形式存储所产生的运行时数据的步骤。11.根据权利要求9所述的方法,其中,所述运行时搜索单元根据最近最少使用(LRU)方法管理所存储的运行时图像数据。全文摘要一种根据本发明

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号