CN1260651C - 用于在爪哇程序中缩短字节代码的编译时间的系统和方法 - Google Patents
用于在爪哇程序中缩短字节代码的编译时间的系统和方法 Download PDFInfo
- Publication number
- CN1260651C CN1260651C CN200410002968.4A CN200410002968A CN1260651C CN 1260651 C CN1260651 C CN 1260651C CN 200410002968 A CN200410002968 A CN 200410002968A CN 1260651 C CN1260651 C CN 1260651C
- Authority
- CN
- China
- Prior art keywords
- code
- memory unit
- machine code
- syllabified
- unit
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004904 shortening Methods 0.000 title claims abstract description 15
- 238000011068 loading method Methods 0.000 claims description 8
- 238000003556 assay Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供了一种系统和方法,其中当执行Java程序时,频繁使用的字节代码被编译为对应的本机代码,并且存储所得的本机代码,因而当将来执行该Java程序时,相关字节代码的本机代码就能被重新获得和执行,因此缩短了通过对该字节代码进行编译以产生本机代码所需的时间。
Description
本发明要求于2003年2月24日在韩国知识产权局提交的韩国专利申请No.10-2003-0011366的优先权,其公开内容全部引用于此作为参考。
技术领域
本发明涉及一种用于在Java(爪哇)程序中缩短字节代码的编译时间的系统和方法,特别涉及一种用于在Java程序中缩短字节代码的编译时间的系统和方法,其中当执行Java程序时频繁使用的字节代码就被编译,并且当在将来使用到该Java程序时,所得的本机代码就被重新得到并运行,因而缩短了该本机代码的编译时间。
背景技术
一般来讲,由Java程序源代码的编译过程产生的字节代码是由Java虚拟机(JVM)执行的。最近,为了增强Java虚拟机的执行速度,用CPU将字节代码解译为可直接运行的本机代码的方法已经被广泛地使用。
在这些方法中,在动态自适应编译(DAC)中,字节代码被解译而那些被频繁使用的、被分类为瓶颈字节代码的字节代码,被编译为本机代码以执行。即,DAC方法只将频繁使用的字节代码编译为本机代码,而不是程序中的所有字节代码。
然而,这里的问题是,一旦缺少内存,在字节代码执行期间所产生的本机代码就会被垃圾收集器收集,而且,由于在Java程序被完全运行以后所有的本机代码都被删除,而不能在将来的执行中再次使用。
因为大部分曾经被编译为本机代码的字节代码倾向于为将来的运行而被重复编译,这里的问题是删除本机代码导致了在将来的运行中所用的本机代码的重复产生。因此,在譬如具有低性能CPU和低容量电池的移动终端的系统中,传统方法的问题在于系统的响应时间增加和电池迅速地消耗。
发明内容
本发明就是用来解决上述问题的。本发明的一个目的是提供一种用于在Java程序中缩短字节代码的编译时间的系统和方法,其中当运行Java程序时对频繁使用的相关字节代码进行编译,并且所得本机代码被存储,因而,当将来运行该Java程序,时相关字节代码的本机代码就能被重新获得和执行。
本发明的另一个目的是提供一种用于在Java程序中缩短字节代码的编译时间的系统和方法,缩短了在具有低性能CPU和低容量电池的设备中Java程序的编译时间和执行时间,因此减少了对用户的响应时间并保存了电池能量。
根据本发明的一个示例方面,为了达到上述目的,提供了一种用于在Java程序中缩短字节代码的编译时间的系统,该系统包括:类装载器单元,用于装载通过编译Java程序源代码所产生的字节代码;第一存储器单元,用于在可访问状态下保持由类装载器单元装载的字节代码和通过编译该字节代码所产生的本机代码;第二存储器单元,用于在可访问状态下存储装载在第一存储器单元中的本机代码;本机代码管理器单元,用于根据类装载器单元的请求,搜索存储在第二存储器单元中的本机代码,并将搜索到的本机代码装载在第一存储器单元中;以及执行单元,用于在可访问状态下执行装载在第一存储器单元中的本机代码,其中该执行单元包括:字节代码解译器,用于在可访问的状态下对装载在第一存储器单元中的字节代码进行解译以便执行;运行时间解析器,用于检验由字节代码解译器解译的字节代码是否是频繁使用的字节代码;以及本机代码编译器,用于如果检验的字节代码被运行时间解析器确定为频繁使用的字节代码,则将检验的字节代码编译为本机代码。
另外,根据本发明的另一个示例方面,提供了一种用于在Java程序中缩短字节代码的编译时间的方法,该方法包括步骤:由类装载器单元装载编译的字节代码;请求本机代码管理器单元搜索对应于装载的字节代码的本机代码;在第二存储器单元中搜索请求的本机代码;将搜索到的本机代码发送到第一存储器单元;以及,由代码执行单元执行发送的本机代码。
附图说明
通过对下面结合了附图的说明性、非限定实施例的说明,本发明的以上和其它目的和特征将变得更加清楚,其中:
图1是示意地说明用于在Java程序中缩短字节代码的编译时间的示例系统的方框图;以及
图2是示意地说明用于在Java程序中缩短字节代码的编译时间的示例方法的流程图。
具体实施方式
下面,将结合附图对本发明的说明性、非限定实施例进行详细的说明。
图1是示意地说明用于在Java程序中缩短字节代码的编译时间的示例系统的方框图。该系统包括:类装载单元100;第一存储器单元200;本机代码管理器单元300;第二存储器单元400;执行单元500和垃圾收集单元600。
类装载器单元100装载通过编译Java程序源代码产生的字节代码。这里,最初位于辅助存储器单元中的字节代码被装载在Java虚拟机中。
第一存储器单元200在可访问状态下保持由类装载器单元100装载的字节代码和通过编译该字节代码所产生的本机代码。即,由类装载器单元100装载的字节代码和通过编译该字节代码所产生的本机代码被存储在预定的存储区域,所以随后描述的执行单元500能够访问存储的本机代码。
第二存储器单元400在可访问状态下存储装载在第一存储器单元200中的本机代码。
本机代码管理器单元300将已经存储在第一存储器单元200中的本机代码存储到第二存储器单元400。本机代码管理器单元300根据类装载器单元100的请求搜索存储在第二存储器单元400中的本机代码,并将搜索到的本机代码装载在第一存储器单元200中。本机代码管理器单元300通过使用最近最少使用的(least recently used,LRU)方法管理存储在第二存储器单元400的本机代码。在LRU方法中,在存储的本机代码中很少使用的本机代码按照它们罕有使用的顺序被检验并删除。这里,很少使用的本机代码被删除,例如基于当它们被存储时的存储大小和时间。
执行单元500在可访问的状态下运行装载在第一存储器单元200中的本机代码和字节代码,执行单元500包括:字节解译器510;运行时间解析器520;本机代码编译器530和本机代码执行器540。
字节代码解译器510在可访问的状态下对装载在第一存储器单元200中的字节代码进行解译并执行解译的字节代码。
运行时间解析器520检验由字节代码解译器510解译的字节代码是否是频繁使用的字节代码,并将检验结果报告给本机代码编译器530。本机代码编译器530通过对解译的字节代码进行编译产生本机代码。此外,如果运行时间解析器520确认该字节代码是频繁使用的字节代码,则本机代码编译器530将编译的本机代码装载在第一存储器单元200中。
本机代码运行器540执行由本机代码管理器单元300装载在第一存储器单元中的本机代码。
垃圾收集单元600在第一存储器单元200中自动地收集被不用的代码占用的空间以在第一存储器单元200中获得更多的空间。如果即使在垃圾收集单元600收集了被不用的代码占用的空间之后在第一存储器单元200中还是发生了空间短缺,垃圾收集单元600请求本机代码管理单元300将本机代码存储到第二存储器单元400中。
图2是根据本发明的示意地说明用于在Java程序中缩短字节代码的编译时间的示例方法的流程图。
首先,类装载器单元100装载由编译Java程序源代码所产生的字节代码(S100)并请求本机代码管理器单元300搜索对应装载的字节代码的本机代码(S110)。然后,本机代码管理器单元300在第二存储器单元400中搜索请求的本机代码(S120)。
当在第二存储器单元400中找到对应的本机代码时(S130),搜索到的本机代码发送到第一存储器单元200(S132)。然后,本机代码运行器540运行发送到第一存储器单元200的本机代码(S134)。这里,存储在第二存储器单元400中的本机代码就是在Java程序中通过对频繁使用的字节代码进行编译所产生的本机代码。
在本发明,存储在第二存储器单元400中的本机代码仅仅是被装载在第一存储器单元中并在第一存储器单元中执行。因此,这样的优点就是不必每次都对频繁使用的字节代码进行解译,因而除去了字节解译过程。
同时,如果由本机代码管理器单元在第二存储器单元400中进行搜索的结果是没有对应相关字节代码的本机代码,则类装载器单元100发送装载的字节代码到第一存储器单元200(S140)。
当字节代码被装载在第一存储器单元200中时,字节代码解译器510对装载的字节代码进行解译以便执行(S150)。
在字节代码解译器510解译字节代码的同时,运行时间解析器520检验解译的字节代码是否是频繁使用的字节代码(S160)。然后,检验结果被发送到本机代码编译器530。
如果确定检验过程的结果是字节代码是频繁使用的字节代码(S170),解译的字节代码被发送到本机代码编译器530并进行编译以产生对应的本机代码(S172)。这里,本机代码被发送到第一存储器单元200然后由本机代码管理器单元300存储在第二存储器单元400中(S174)。此时,存储在第二存储器单元400中的本机代码由本机代码管理器单元300根据LRU方法进行管理。即,由于第二存储器单元400存储区域的限制,使用LRU方法来管理存储的本机代码。
然而,不是频繁使用的或在以前已经被定义为不用的字节代码,则将由字节腹面解译器510进行解译以便运行(S180)。
垃圾收集单元600在第一存储器单元200中自动地收集被不用的代码占用的空间以在第一存储器单元200中获得更多的空间。另外,如果即使在处理了不用的代码之后第一存储器单元200还是缺乏空间,本机代码管理单元300被请求存储已经装载在第一存储器单元200中的本机代码,因此在第一存储器单元200中获得了更多的空间。
根据本发明,当运行Java程序时,频繁使用的相关字节代码就被编译并被存储,因而,当将来运行该Java程序时,相关字节代码的本机代码就被重新得到并运行。因此,这里的优点就是缩短了通过编译字节代码产生本机代码所需的时间。
此外,这里的优点就是在具有低性能CPU和低容量电池的譬如蜂窝电话的设备中缩短了Java程序的编译时间和运行时间,因此减少了对用户的响应时间并保存了电池能量。
已经结合在附图中所示的并仅仅是本发明的例子的说明性、非限定实施例,对本发明进行了说明。本领域的技术人员能够理解,在不脱离权利要求书所定义的本发明的范围和精神的情况下,可以对其进行各种变化和改动。因此,实施例的简单改动应当属于本发明的范围之内。
Claims (14)
1.一种用于在Java程序中缩短字节代码的编译时间的系统,包括:
类装载器单元,用于装载通过编译Java程序源代码所产生的字节代码;
第一存储器单元,用于在可访问状态下保持由类装载器单元装载的字节代码和通过编译该字节代码所产生的本机代码;
第二存储器单元,用于在可访问状态下存储装载在第一存储器单元中的本机代码;
本机代码管理器单元,用于按照类装载器单元的请求,搜索存储在第二存储器单元中的本机代码,并将搜索到的本机代码装载在第一存储器单元中;以及
执行单元,用于在可访问状态下执行装载在第一存储器单元中的本机代码,其中该执行单元包括:
字节代码解译器,用于在可访问的状态下对装载在第一存储器单元中的字节代码进行解译以便执行;
运行时间解析器,用于检验由字节代码解译器解译的字节代码是否是频繁使用的字节代码;以及
本机代码编译器,用于如果检验的字节代码被运行时间解析器确定为频繁使用的字节代码,则将检验的字节代码编译为本机代码。
2.权利要求1所述的系统,还包括垃圾收集单元,用于在第一存储器单元自动地收集被不用的代码所占用的空间。
3.权利要求2所述的系统,其中如果在第一存储器单元中发生了空间短缺,垃圾收集单元请求本机代码管理单元将已经装载在第一存储器单元中的本机代码存储到第二存储器单元中。
4.权利要求1所述的系统,其中本机代码管理单元将已经装载在第一存储器单元中的本机代码存储到第二存储器单元中。
5.权利要求1所述的系统,其中本机代码管理单元使用最近最少使用的方法来管理存储在第二存储器单元中的本机代码。
6.权利要求4所述的系统,其中本机代码管理单元使用最近最少使用的方法来管理存储在第二存储器单元中的本机代码。
7.一种用于在Java程序中缩短字节代码的编译时间的方法,包括步骤:
(a1)由类装载器单元装载编译的字节代码;
(a2)请求本机代码管理器单元搜索对应于装载的字节代码的本机代码;
(a3)在第二存储器单元中搜索请求的本机代码;
(a4)将请求的本机代码发送到第一存储器单元;以及
(a5)由代码执行单元执行发送的本机代码。
8.权利要求7所述的方法,其中存储在第二存储器单元中的本机代码由本机代码管理器单元根据最近最少使用的方法进行管理。
9.权利要求7所述的方法,还包括步骤:如果搜索结果确定在第二存储器单元中没有对应的本机代码,则
(a6)发送由类装载单元装载的字节代码到第一存储器单元;以及
(a7)由字节代码解译器对发送到第一存储器单元的字节代码进行解译并执行。
10.权利要求9所述的方法,其中步骤(a7)包括步骤:由运行时间解析器检验由字节代码解译器解译的字节代码是否是频繁使用的字节代码。
11.权利要求10所述的方法,还包括步骤:如果根据检验结果该字节代码被确定为频繁使用的字节代码,则
(a8)通过对由字节代码解译器解译的字节代码进行编译,由本机代码编译器产生对应于频繁使用的字节代码的本机代码;
(a9)将产生的本机代码装载在第一存储器单元中;以及
(a10)由本机代码管理器单元将装载的本机代码存储在第二存储器单元中。
12.权利要求7所述的方法,其中如果Java程序的执行终止或在第一存储器单元中发生空间短缺,则装载在第一存储器单元中的本机代码被存储在第二存储器单元中。
13.权利要求9所述的方法,其中存储在第二存储器单元中的本机代码由本机代码管理器单元根据最近最少使用的方法进行管理。
14.权利要求12所述的方法,其中存储在第二存储器单元中的本机代码由本机代码管理器单元根据最近最少使用的方法进行管理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0011366A KR100506522B1 (ko) | 2003-02-24 | 2003-02-24 | 자바 프로그램에서 바이트 코드의 컴파일 시간 단축시스템 및 방법 |
KR0011366/2003 | 2003-02-24 | ||
KR0011366/03 | 2003-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1525321A CN1525321A (zh) | 2004-09-01 |
CN1260651C true CN1260651C (zh) | 2006-06-21 |
Family
ID=32866937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410002968.4A Expired - Fee Related CN1260651C (zh) | 2003-02-24 | 2004-01-21 | 用于在爪哇程序中缩短字节代码的编译时间的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040168162A1 (zh) |
JP (1) | JP2004259252A (zh) |
KR (1) | KR100506522B1 (zh) |
CN (1) | CN1260651C (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113980B2 (en) | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US7707547B2 (en) * | 2005-03-11 | 2010-04-27 | Aptana, Inc. | System and method for creating target byte code |
US7844958B2 (en) * | 2005-03-11 | 2010-11-30 | Aptana, Inc. | System and method for creating target byte code |
KR100763177B1 (ko) * | 2005-04-21 | 2007-10-04 | 삼성전자주식회사 | 자바 가상 머신의 명령어 수행 방법 및 그 장치 |
US7870265B2 (en) * | 2005-06-30 | 2011-01-11 | Oracle International Corporation | System and method for managing communications sessions in a network |
KR101140522B1 (ko) * | 2005-07-14 | 2012-04-30 | 에스케이플래닛 주식회사 | 객체 관리 시스템 및 방법 |
KR100678912B1 (ko) | 2005-10-18 | 2007-02-05 | 삼성전자주식회사 | 메소드 바이트코드 해석 방법 및 상기 방법에 의해동작하는 시스템 |
CN101346634B (zh) * | 2005-11-04 | 2012-10-24 | 甲骨文国际公司 | 用于通信网络中的网守的系统和方法 |
US20070169012A1 (en) * | 2005-11-14 | 2007-07-19 | Microsoft Corporation | Asynchronous just-in-time compilation |
US7353504B2 (en) * | 2005-12-09 | 2008-04-01 | Bea Systems, Inc. | System and method for efficiently generating native code calls from byte code in virtual machines |
CN100339831C (zh) * | 2005-12-14 | 2007-09-26 | 浙江大学 | 应用于Java操作系统中虚拟机的编译体系实现方法 |
US8112525B2 (en) * | 2006-05-16 | 2012-02-07 | Oracle International Corporation | Engine near cache for reducing latency in a telecommunications environment |
US8001250B2 (en) * | 2006-05-16 | 2011-08-16 | Oracle International Corporation | SIP and HTTP convergence in network computing environments |
US8171466B2 (en) | 2006-05-16 | 2012-05-01 | Oracle International Corporation | Hitless application upgrade for SIP server architecture |
US8219697B2 (en) | 2006-05-17 | 2012-07-10 | Oracle International Corporation | Diameter protocol and SH interface support for SIP server architecture |
US7661027B2 (en) * | 2006-10-10 | 2010-02-09 | Bea Systems, Inc. | SIP server architecture fault tolerance and failover |
US20080086567A1 (en) * | 2006-10-10 | 2008-04-10 | Bea Systems, Inc. | SIP server architecture for improving latency in message processing |
US20080147551A1 (en) * | 2006-12-13 | 2008-06-19 | Bea Systems, Inc. | System and Method for a SIP Server with Online Charging |
US8078737B2 (en) * | 2006-12-13 | 2011-12-13 | Oracle International Corporation | System and method for efficient storage of long-lived session state in a SIP server |
US9667430B2 (en) * | 2006-12-13 | 2017-05-30 | Oracle International Corporation | System and method for a SIP server with offline charging |
US8341609B2 (en) * | 2007-01-26 | 2012-12-25 | Oracle International Corporation | Code generation in the presence of paged memory |
US8413125B2 (en) * | 2007-01-26 | 2013-04-02 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
US8037460B2 (en) * | 2007-01-26 | 2011-10-11 | Oracle International Corporation | Code persistence and dependency management for dynamic compilation in a database management system |
US7895475B2 (en) * | 2007-07-11 | 2011-02-22 | Oracle International Corporation | System and method for providing an instrumentation service using dye injection and filtering in a SIP application server environment |
US8914774B1 (en) | 2007-11-15 | 2014-12-16 | Appcelerator, Inc. | System and method for tagging code to determine where the code runs |
US8954989B1 (en) | 2007-11-19 | 2015-02-10 | Appcelerator, Inc. | Flexible, event-driven JavaScript server architecture |
US8260845B1 (en) | 2007-11-21 | 2012-09-04 | Appcelerator, Inc. | System and method for auto-generating JavaScript proxies and meta-proxies |
US8566807B1 (en) | 2007-11-23 | 2013-10-22 | Appcelerator, Inc. | System and method for accessibility of document object model and JavaScript by other platforms |
US8719451B1 (en) | 2007-11-23 | 2014-05-06 | Appcelerator, Inc. | System and method for on-the-fly, post-processing document object model manipulation |
US8806431B1 (en) | 2007-12-03 | 2014-08-12 | Appecelerator, Inc. | Aspect oriented programming |
US8819539B1 (en) | 2007-12-03 | 2014-08-26 | Appcelerator, Inc. | On-the-fly rewriting of uniform resource locators in a web-page |
US8756579B1 (en) | 2007-12-03 | 2014-06-17 | Appcelerator, Inc. | Client-side and server-side unified validation |
US8527860B1 (en) | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
US8938491B1 (en) | 2007-12-04 | 2015-01-20 | Appcelerator, Inc. | System and method for secure binding of client calls and server functions |
US8335982B1 (en) | 2007-12-05 | 2012-12-18 | Appcelerator, Inc. | System and method for binding a document object model through JavaScript callbacks |
US8285813B1 (en) | 2007-12-05 | 2012-10-09 | Appcelerator, Inc. | System and method for emulating different user agents on a server |
US8639743B1 (en) | 2007-12-05 | 2014-01-28 | Appcelerator, Inc. | System and method for on-the-fly rewriting of JavaScript |
US8296745B2 (en) * | 2007-12-31 | 2012-10-23 | Oracle America, Inc. | Method and apparatus for portable stub generation |
US8291079B1 (en) | 2008-06-04 | 2012-10-16 | Appcelerator, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
US8880678B1 (en) | 2008-06-05 | 2014-11-04 | Appcelerator, Inc. | System and method for managing and monitoring a web application using multiple cloud providers |
US7596620B1 (en) | 2008-11-04 | 2009-09-29 | Aptana, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
KR101116939B1 (ko) | 2009-12-10 | 2012-03-14 | 주식회사 엘지유플러스 | 이동 단말기 및 상기 이동 단말기에서 웹 애플리케이션 실행 방법 |
CN102135877B (zh) * | 2010-01-27 | 2014-05-28 | 金蝶软件(中国)有限公司 | 自动化构建方法及装置 |
KR101334938B1 (ko) * | 2012-06-20 | 2013-12-02 | 주식회사 한국스마트카드 | 스크립트 파일 기반으로 카드 처리를 수행하는 rf 결재 단말기 |
JP6127639B2 (ja) | 2013-03-26 | 2017-05-17 | 富士通株式会社 | プログラム実行制御プログラム、プログラム実行制御方法 |
JP6379654B2 (ja) * | 2014-05-15 | 2018-08-29 | 富士通株式会社 | 処理実行プログラム、処理実行方法、及び情報処理装置 |
US9355011B2 (en) * | 2014-06-09 | 2016-05-31 | International Business Machines Corporation | Detecting potential class loader problems using the class search path sequence for each class loader |
US9864649B2 (en) * | 2015-03-27 | 2018-01-09 | Intel Corporation | Technologies for root cause identification of use-after-free memory corruption bugs |
CN110704036B (zh) * | 2018-07-10 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 构建脚本的方法、装置和存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100466722B1 (ko) * | 1996-01-24 | 2005-04-14 | 선 마이크로시스템즈 인코퍼레이티드 | 어레이경계검사방법및장치와,이를포함하는컴퓨터시스템 |
US6110226A (en) * | 1998-02-19 | 2000-08-29 | Cygnus Solutions | Java development environment using optimizing ahead-of-time compiler |
US6421689B1 (en) * | 1998-06-30 | 2002-07-16 | Oracle Corporation | Moderately conservative, mostly copying 2 space garbage collector in the nursery of a generational memory manager |
US6295638B1 (en) * | 1998-07-30 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for loading native object code in data processing system |
US6295643B1 (en) * | 1998-12-10 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for improving java virtual machine performance using persistent execution information |
JP2001056764A (ja) * | 1999-08-18 | 2001-02-27 | Access:Kk | 仮想計算機の実行方法および装置 |
KR100319755B1 (ko) * | 1999-12-02 | 2002-01-05 | 오길록 | 내장형 자바가상머신을 위한 바이트코드 압축 방법 |
US6484188B1 (en) * | 1999-12-30 | 2002-11-19 | Intel Corporation | Optimization of garbage collection code in the context of raw native interface function calls in the java programming language |
US6854115B1 (en) * | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6836884B1 (en) * | 2001-06-04 | 2004-12-28 | Microsoft Corporation | Method and system for editing software programs |
WO2004040445A1 (en) * | 2002-10-29 | 2004-05-13 | Freescale Semiconductor, Inc. | Method and apparatus for selectively optimizing interpreted language code |
-
2003
- 2003-02-24 KR KR10-2003-0011366A patent/KR100506522B1/ko not_active IP Right Cessation
- 2003-10-20 JP JP2003359830A patent/JP2004259252A/ja active Pending
- 2003-12-09 US US10/730,046 patent/US20040168162A1/en not_active Abandoned
-
2004
- 2004-01-21 CN CN200410002968.4A patent/CN1260651C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20040076048A (ko) | 2004-08-31 |
CN1525321A (zh) | 2004-09-01 |
KR100506522B1 (ko) | 2005-08-03 |
US20040168162A1 (en) | 2004-08-26 |
JP2004259252A (ja) | 2004-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1260651C (zh) | 用于在爪哇程序中缩短字节代码的编译时间的系统和方法 | |
US6434577B1 (en) | Scalable-remembered-set garbage collection | |
KR100541174B1 (ko) | 로컬화된 메모리 재이용을 가진 데이터 처리기 | |
US6449626B1 (en) | Reduced-cost remembered-set processing in a train-algorithm-based garbage collector | |
US6105040A (en) | Method and apparatus for managing stored objects | |
CN100365577C (zh) | 永久高速缓存装置和方法 | |
US20050081190A1 (en) | Autonomic memory leak detection and remediation | |
EP2147380A1 (en) | System and method of managing indexation of flash memory | |
WO2001013238A1 (en) | Train-algorithm-based garbage collector employing farthest-forward-car indicator | |
CN1251076C (zh) | 用来提高至少一个程序执行速度的基于计算机平台的系统及方法 | |
CN1687904A (zh) | 智能卡存储环境的控制方法 | |
CN1695117A (zh) | 产生用于存储在具有有限存储单元的设备中的可解译代码的方法 | |
CN1300681C (zh) | 用于缩短java程序中的类加载处理的系统和方法 | |
CN1829977A (zh) | 利用一个栈跟踪高速缓存器改善垃圾收集的性能的方法和装置 | |
US7318062B2 (en) | Storing method metadata in code | |
CN115617762A (zh) | 文件存储方法及设备 | |
CN1139032C (zh) | 减少存储器需求的程序代码执行装置和方法 | |
EP1489518B1 (en) | Embedded garbage collection | |
CN1269034C (zh) | 一种嵌入式系统中可执行文件的压缩及其加载方法 | |
US6785698B2 (en) | Instance-reduction algorithm for garbage-collected language | |
US7150009B2 (en) | Space-efficient object models for object-oriented programming languages | |
KR100502380B1 (ko) | 포인터-고유명령변형교환메카니즘을포함하는쓰기배리어시스템및방법 | |
CN114691242A (zh) | 软件功能实现方法、装置、设备及存储介质 | |
Suzuki et al. | MOA—A fast sliding compaction scheme for a large storage space | |
Martin | Garbage collection in java |
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: 20060621 Termination date: 20100221 |