CN1519709A - 用于缩短java程序中的类加载处理的系统和方法 - Google Patents
用于缩短java程序中的类加载处理的系统和方法 Download PDFInfo
- Publication number
- CN1519709A CN1519709A CNA2004100036584A CN200410003658A CN1519709A CN 1519709 A CN1519709 A CN 1519709A CN A2004100036584 A CNA2004100036584 A CN A2004100036584A CN 200410003658 A CN200410003658 A CN 200410003658A CN 1519709 A CN1519709 A CN 1519709A
- Authority
- CN
- China
- Prior art keywords
- runtime data
- memory unit
- unit
- java applet
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
Abstract
一种根据本发明的用于缩短Java程序中的类加载处理的系统,其包括:类加载器单元,用于从辅助存储器加载Java程序的类文件,执行链接和初始化处理并产生运行时数据;第一存储器单元,用于将由所述类加载器单元产生的运行时数据保持在可访问状态;第二存储器单元,用于以图像的形式存储已经被加载到第一存储器单元中的、处于可访问状态的运行时数据;运行时数据搜索单元,用于根据类加载器单元的请求将已经以图像形式存储在第二存储器单元中的运行时数据加载到第一存储器单元中;和执行单元,用于执行已经加载到第一存储器单元中、处于可访问状态的运行时数据。
Description
技术领域
本发明涉及一种用于缩短Java程序中的类加载处理的系统和方法。具体地说,本发明涉及一种用于缩短Java程序中的类加载处理的系统和方法,其中,在执行Java程序中的类加载处理所产生的运行时数据被以图像的形式存储,然后在日后执行所述Java程序时检索并执行所存储的运行时数据,借此缩短所述的类加载时间。
背景技术
最近,随着移动终端使用的逐渐增加,运行于移动终端的Java程序(例如游戏、软件包(messenger)等)的规模变得较大。
但是,为了执行一个Java程序,应当首先在Java虚拟机(JVM)中执行类加载处理。另外,为了完成所述的类加载处理,还应当执行包括加载、链接、初始化等的处理。此外,所述链接处理包括认证、准备、分解等处理。因此,存在大量的时间被花费在执行所述的类加载处理上的问题。
特别是,对于相同字节的代码,可以只在最初执行所述Java程序时才执行所述类加载处理当中的认证处理。但是,当前的类加载处理被设计成无论在什么时候执行所述Java程序都要执行所述认证处理。由此,传统的类加载处理存在下述问题,即,在诸如具有低性能CPU和低容量电池的移动终端的系统中,系统的响应时间增加并且电池被很快的耗尽。
另外,随着Java程序的规模变得更大时,加载该程序所花费的时间逐步地增加。因此,在这种情况下,与系统响应时间和电池寿命相关的上述问题变得更加严重。
发明内容
本发明试图解决上述问题。本发明的一个目的是提供一种用于缩短Java程序中的类加载处理的系统和方法,其中,在执行Java程序中的类加载处理所产生的运行时数据被以图像的形式存储,并且在日后执行所述Java程序时检索和执行所存储的运行时数据,借此以缩短类加载的时间。
本发明的另一个目的是提供一种用于缩短Java程序中的类加载处理的系统和方法,其中,改善了在装备有低性能CPU和/或低容量电池的情况下,所述Java程序的处理速度,借此,减少了对用户的响应时间和节省了电池能量。
根据用于实现所述目的的本发明的一个方面,提供了一种用于缩短Java程序中的类加载处理的系统,包括:类加载器单元,用于从辅助存储器加载Java程序的类文件,执行链接和初始化处理并产生运行时数据;第一存储器单元,用于将由所述的类加载器单元产生的所述运行时数据保持在可访问状态;第二存储器单元,用于存储已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据;运行时数据搜索单元,用于根据所述的类加载器单元的请求将已经以图像的形式存储在所述第二存储器单元中的所述运行时数据加载到所述第一存储器单元中;和执行单元,用于执行已经加载到所述第一存储器单元中、处于可访问状态的运行时数据。
附图简述
通过下面结合附图对本发明最佳实施例的描述,本发明的上述和其它目的和特性将变得明显。其中:
图1简要示出了根据本发明用于缩短Java程序中所述类加载处理的系统的方框图;
图2简要示出了根据本发明用于缩短Java程序中所述类加载处理的方法的流程图;和
图3特别示出了图2中所示的产生运行时数据的处理的流程图。
具体实施方式
下面将结合附图详细描述本发明的最佳实施例。
图1简要示出了用于缩短Java程序中所述类加载处理的系统的方框图。该系统包括类加载器单元100、第一存储器单元200、运行时数据搜索单元300、第二存储器单元400、执行单元500和无用数据收集器单元600。
类加载器单元100加载来自一个辅助存储器的Java程序的类文件,执行链接和初始化处理,然后产生运行时数据。这里,所述加载处理是指将位于所述辅助存储器中的所述类文件加载到一个Java虚拟机中的处理。另外,所述链接处理是指使得所加载的类文件被处理成它们能够被所述Java虚拟机执行的状态,并且包括认证、准备和分解等处理。所述运行时数据被加载到第一存储器单元200中并用于执行所述Java程序。所述运行时数据可以被理解为常数池、方法表和字段表等。
第一存储器单元200将由类加载器单元100产生的运行时数据保持在可访问状态。即,由所述类加载器单元100产生的所述运行时数据被存储在预定存储区域内,从而使下面将要描述的执行单元500能够访问所存储的运行时数据。
第二存储器单元400以图像的形式存储已经以可访问状态存储在第一存储器单元200中的所述运行时数据。
运行时数据搜索单元300根据类加载器单元100的请求将存储在第二存储器单元400中的所述运行时数据加载到第一存储器单元200中。另外,运行时数据搜索单元300将已经由类加载器单元100产生的运行时数据以图像的形式存储到第二存储器单元400中。另外,运行时数据搜索单元300通过使用最近最少使用的(LRU)方法管理已经以图像形式存储在第二存储器单元400中的所述运行时数据。这里,根据所述LRU方法,按照较少使用的顺序检查并删除所存储数据当中很少使用的数据。
执行单元500执行以可访问状态加载到第一存储器单元200中的所述运行时数据。
无用数据收集器单元600收集在第一存储器单元200中未使用的存储区域,以便允许所述未使用的区域被再次使用,借此确保第一存储器单元200中更多的可用区域。
图2简要示出了根据本发明用于缩短Java程序中所述类加载处理的方法的流程图。
首先,类加载器单元100请求运行时数据搜索单元300搜索执行一个Java程序所需的运行时数据(S100),然后,运行时数据搜索单元300在第二存储器单元400中搜索是否存在所述运行时数据(S110)。
如果在第二存储器单元400中发现相关的运行时数据(S120),则搜索到的运行时数据被发送给第一存储器单元200(S125)。然后,执行单元500执行发送给第一存储器单元200的所述运行时数据(S160)。这里,存储在第二存储器单元400中的所述运行时数据可以是图像文件,即在其中以图像形式存储了执行各种Java程序所产生的所述运行时数据的文件。
同时,根据本发明,在前已经产生和存储在第二存储器单元400中的所述运行时数据被简单地加载到第一存储器单元200中并被执行。由此,不必在任何执行所述Java程序的时候产生所述运行时数据,借此,消除了产生所述运行时数据所需的复杂的加载处理。因此,可以减少类加载时间。
另外,如果作为由运行时数据搜索单元300进行的第二存储器单元400的搜索的结果是不存在相关的运行时数据,则类加载器单元100产生执行所述Java程序所需的运行时数据(S130)。
下面结合图3讨论产生运行时数据的处理。首先,从辅助存储器加载所述Java程序的类文件(S132),通过对所加载的类文件进行链接和初始化处理产生所述运行时数据(S134到S138)。这里,所述加载处理是指将位于所述辅助存储器中的所述类文件加载到所述Java虚拟机中的处理;所述类文件链接处理是指使得所加载的类文件被处理成它们能够被所述Java虚拟机执行的状态的处理。具体地说,所述链接处理包括用于认证所加载的类文件是否包含正确的类格式的认证处理、分配存储器区域的准备处理、和将所述的类文件转换为可执行文件的分解处理。
在执行链接处理之后,所述类文件被初始化并产生所述运行时数据。运行时数据搜索单元300将所产生的运行时数据以图像的形式存储在第二存储器单元400中(S140)。此时,运行时数据搜索单元300根据所述LRU方法管理存储在第二存储器单元400中的图像数据。即,由于第二存储器单元400的存储区域是有限的,所以,使用所述LRU方法来管理所存储的数据。
然后,运行时数据搜索单元300将以图像形式存储的所述运行时数据发送给第一存储器单元200(S150),和执行单元500执行发送给第一存储器单元200的所述运行时图像数据(S160)。这里,如果第一存储器单元300缺少用于数据加载的空间,那么,无用数据收集器单元600收集第一存储器单元200中未使用的空间,并允许所收集的空间被再次使用,借此,确保在第一存储器单元200中的更多的空间。
或者,可以在步骤S160之后执行步骤S140。即,当产生所述运行时数据时(S130),将所产生的运行时数据发送给第一存储器单元200(S150)并执行所发送的运行时数据(S160)。然后,在所述Java程序被执行完毕之后,所述运行时数据可以被存储在第二存储器单元400中。
根据本发明,在执行Java程序中所述类加载处理产生的运行时数据被以图像的形式存储,并在日后执行所述Java程序时检索并执行所存储的运行时数据,借此,可以在不执行复杂的类加载处理的情况下执行所述Java程序。由此,存在一个优点,即在执行一个Java程序时可以缩短类加载时间。
另外,改善了在装备有低性能CPU和/或低容量电池的情形下Java程序的处理速度,借此,减少了对用户的响应时间并节省了电池能量。
虽然已经结合附图中所示的实施例对本发明进行了描述,但它们仅仅是本发明的一些例子。本领域的普通技术人员可以理解,在不脱离由权利要求书所限定的本发明的范围和精神的前提下,可以对其进行各种改变和修改。因此,对本发明实施例的简单的改变在本发明的范围之内。
Claims (11)
1.一种用于缩短Java程序中的类加载处理的系统,包括:
类加载器单元,用于从辅助存储器加载Java程序的类文件,执行链接和初始化处理并产生运行时数据;
第一存储器单元,用于将由所述的类加载器单元产生的所述运行时数据保持在可访问状态;
第二存储器单元,用于以图像的形式存储已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据;
运行时数据搜索单元,用于根据所述的类加载器单元的请求将已经被以图像形式存储在所述第二存储器单元中的所述运行时数据加载到所述第一存储器单元中;和
执行单元,用于执行已经加载到所述第一存储器单元中、处于可访问状态的所述运行时数据。
2.根据权利要求1所述的系统,还包括一个无用数据收集器单元,用于收集所述第一存储器单元中未使用的空间,并允许所述未使用的空间被再次使用。
3.根据权利要求1所述的系统,其中,所述运行时数据搜索单元使得由所述的类加载器单元产生的所述运行时数据以图像的形式被存储在所述第二存储器单元中。
4.根据权利要求1所述的系统,其中,所述运行时数据搜索单元通过使用最近最少使用(LRU)方法管理已经以图像形式存储在所述第二存储器单元中的所述运行时数据。
5.根据权利要求3所述的系统,其中,所述运行时数据搜索单元通过使用最近最少使用(LRU)方法管理已经以图像形式存储在所述第二存储器单元中的所述运行时数据。
6.一种用于缩短Java程序中的类加载处理的方法,包括下述步骤:
类加载器单元请求运行时数据搜索单元搜索执行所述Java程序所需的运行时数据;
运行时数据搜索单元搜索所请求的用于所述Java程序的运行时数据;
将搜索到的运行时数据发送给第一存储器单元;和
执行发送给所述第一存储器单元的所述运行时数据。
7.根据权利要求6所述的方法,其中,所述搜索到的运行时数据以图像的形式存储在第二存储器单元中。
8.根据权利要求7所述的方法,其中,所述运行时数据搜索单元根据最近最少使用(LRU)方法管理存储在所述第二存储器单元中的所述运行时数据。
9.根据权利要求6所述的方法,还包括下述步骤:如果从所请求的用于所述Java程序的运行时数据的搜索结果确定不存在相关的运行时数据,则
从一个辅助存储器加载Java程序的类文件;
通过执行所加载的Java程序类文件的链接和初始化处理产生运行时数据;
以图像的形式存储所产生的运行时数据;和
将所述运行时图像数据发送给所述第一存储器单元。
10.根据权利要求9所述的方法,其中,在执行发送到所述第一存储器单元的所述运行时数据之后,执行以图像形式存储所产生的运行时数据的步骤。
11.根据权利要求9所述的方法,其中,所述运行时搜索单元根据最近最少使用(LRU)方法管理所存储的运行时图像数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR0007728/2003 | 2003-02-07 | ||
KR0007728/03 | 2003-02-07 | ||
KR10-2003-0007728A KR100493893B1 (ko) | 2003-02-07 | 2003-02-07 | 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1519709A true CN1519709A (zh) | 2004-08-11 |
CN1300681C CN1300681C (zh) | 2007-02-14 |
Family
ID=32866874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100036584A Expired - Fee Related CN1300681C (zh) | 2003-02-07 | 2004-02-05 | 用于缩短java程序中的类加载处理的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040168163A1 (zh) |
JP (1) | JP2004240965A (zh) |
KR (1) | KR100493893B1 (zh) |
CN (1) | CN1300681C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100346303C (zh) * | 2006-01-17 | 2007-10-31 | 浙江大学 | Java操作系统中类装载的实现方法 |
CN100543679C (zh) * | 2006-02-01 | 2009-09-23 | 佳能株式会社 | 执行设备和方法 |
CN101729753B (zh) * | 2009-11-06 | 2011-09-28 | 深圳市同洲电子股份有限公司 | 一种java应用中加载图片的方法和装置 |
CN103473096A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学城市学院 | 一种在android系统的虚拟机上加载java类的方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100749664B1 (ko) * | 2005-01-03 | 2007-08-14 | 에스케이 텔레콤주식회사 | 클래스 파일 롬 이미지화 방법 및 그 롬 이미지화된클래스 파일 실행 방법 |
US20070061794A1 (en) * | 2005-09-13 | 2007-03-15 | Mausolf Jeffry R | Method and apparatus for classpath optimization in a Java runtime environment |
KR100777872B1 (ko) * | 2006-02-23 | 2007-11-21 | 엘지전자 주식회사 | 데이터 방송의 이미지 표시 방법 |
CN100465894C (zh) * | 2007-01-12 | 2009-03-04 | 中山大学 | 一种Java Processor启动时类装载方法 |
FI20070366A0 (fi) | 2007-05-09 | 2007-05-09 | Webmedia As | Menetelmä ja järjestelmä luokan uudelleen lataamiseksi |
US8127284B2 (en) * | 2007-10-16 | 2012-02-28 | Microsoft Corporation | On-demand loading of types of software code of a program executing on a computing device |
CN103257881A (zh) * | 2013-06-03 | 2013-08-21 | 贝壳网际(北京)安全技术有限公司 | 基于浏览器的插件运行方法、浏览器装置及终端 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6154548A (ja) * | 1984-08-23 | 1986-03-18 | Fujitsu Ltd | 非常駐プログラムの制御方法 |
JP2772103B2 (ja) * | 1990-03-28 | 1998-07-02 | 株式会社東芝 | 計算機システム立上げ方式 |
JP3102455B2 (ja) * | 1993-07-26 | 2000-10-23 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 情報処理システム |
US5815718A (en) * | 1996-05-30 | 1998-09-29 | Sun Microsystems, Inc. | Method and system for loading classes in read-only memory |
US5966702A (en) * | 1997-10-31 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for pre-processing and packaging class files |
GB2331814B (en) * | 1997-11-19 | 2002-11-13 | Ibm | Pre-emptive download of software in data processing network |
US6349344B1 (en) * | 1997-12-16 | 2002-02-19 | Microsoft Corporation | Combining multiple java class files into a run-time image |
US6061520A (en) * | 1998-04-07 | 2000-05-09 | Sun Microsystems, Inc. | Method and system for performing static initialization |
US6725241B1 (en) * | 1999-03-31 | 2004-04-20 | International Business Machines Corporation | Method and apparatus for freeing memory in a data processing system |
US6584612B1 (en) * | 1999-07-15 | 2003-06-24 | International Business Machines Corporation | Transparent loading of resources from read-only memory for an application program |
US6513158B1 (en) * | 1999-11-15 | 2003-01-28 | Espial Group Inc. | Method and apparatus for running multiple java applications simultaneously |
JP2002024038A (ja) * | 2000-07-05 | 2002-01-25 | Toshiba Corp | クラスファイル検索システム及びクラスファイル検索システムにおけるクラスファイル検索プログラムを記録した記録媒体 |
US6508396B1 (en) * | 2000-07-18 | 2003-01-21 | C. C. & L Company Limited | Table top display devices |
JP2002055835A (ja) * | 2000-08-11 | 2002-02-20 | Omron Corp | プログラムアンロードシステム及び記憶媒体 |
JP2002258971A (ja) * | 2001-02-28 | 2002-09-13 | Hitachi Ltd | 計算機システムの再立上げ方法 |
US7080373B2 (en) * | 2001-03-07 | 2006-07-18 | Freescale Semiconductor, Inc. | Method and device for creating and using pre-internalized program files |
US6964033B2 (en) * | 2001-06-20 | 2005-11-08 | Sun Microsystems, Inc. | Object band customization of Java runtime environments |
US7065743B2 (en) * | 2002-07-11 | 2006-06-20 | International Business Machines Corporation | Apparatus and method for caching analyzed program information |
-
2003
- 2003-02-07 KR KR10-2003-0007728A patent/KR100493893B1/ko not_active IP Right Cessation
-
2004
- 2004-01-19 JP JP2004011128A patent/JP2004240965A/ja active Pending
- 2004-02-05 CN CNB2004100036584A patent/CN1300681C/zh not_active Expired - Fee Related
- 2004-02-09 US US10/773,292 patent/US20040168163A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100346303C (zh) * | 2006-01-17 | 2007-10-31 | 浙江大学 | Java操作系统中类装载的实现方法 |
CN100543679C (zh) * | 2006-02-01 | 2009-09-23 | 佳能株式会社 | 执行设备和方法 |
US8732723B2 (en) | 2006-02-01 | 2014-05-20 | Canon Kabushiki Kaisha | Execution apparatus and method |
CN101729753B (zh) * | 2009-11-06 | 2011-09-28 | 深圳市同洲电子股份有限公司 | 一种java应用中加载图片的方法和装置 |
CN103473096A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学城市学院 | 一种在android系统的虚拟机上加载java类的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1300681C (zh) | 2007-02-14 |
US20040168163A1 (en) | 2004-08-26 |
JP2004240965A (ja) | 2004-08-26 |
KR20040071831A (ko) | 2004-08-16 |
KR100493893B1 (ko) | 2005-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1260651C (zh) | 用于在爪哇程序中缩短字节代码的编译时间的系统和方法 | |
CN100365577C (zh) | 永久高速缓存装置和方法 | |
CN1300681C (zh) | 用于缩短java程序中的类加载处理的系统和方法 | |
US11042477B2 (en) | Memory management using segregated free lists | |
KR100541174B1 (ko) | 로컬화된 메모리 재이용을 가진 데이터 처리기 | |
US7761487B2 (en) | Predicting out of memory conditions using soft references | |
US6948034B2 (en) | Method for use of stack | |
CN110929194B (zh) | 一种基于摘要算法的静态资源文件缓存控制方法及系统 | |
CN1497448A (zh) | 在操作系统内核环境中高速缓存应用数据的系统和方法 | |
CN1251076C (zh) | 用来提高至少一个程序执行速度的基于计算机平台的系统及方法 | |
CN115617762A (zh) | 文件存储方法及设备 | |
CN115576899A (zh) | 构建索引的方法和装置以及文件查找方法和装置 | |
EP1489518B1 (en) | Embedded garbage collection | |
CN1092358C (zh) | 带有检测点功能的计算机系统 | |
JP2002534737A (ja) | 低減されたメモリ条件でプログラムコードを実行するための装置 | |
CN1838668A (zh) | 侦测计算机病毒的方法及其应用 | |
CN1266602C (zh) | 用于锁定表目的方法和设备及用于并行处理的计算机系统 | |
CN110413679B (zh) | 数据库信息处理方法、装置、设备及可读存储介质 | |
CN1269034C (zh) | 一种嵌入式系统中可执行文件的压缩及其加载方法 | |
CN1402847A (zh) | 把无用方法收集到垃圾箱中的方法 | |
CN107562782B (zh) | 一种基于cim模型的多级缓存方法、装置及系统 | |
CN1921474A (zh) | 用于在计算机系统中管理服务器处理的方法和设备 | |
US7150009B2 (en) | Space-efficient object models for object-oriented programming languages | |
US20070289016A1 (en) | Bi-modular system and method for detecting and removing harmful files using signature scanning | |
CN117806842A (zh) | 一种数据访问方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070214 Termination date: 20100205 |