CN101344856A - 增加任务执行速度的方法和设备 - Google Patents
增加任务执行速度的方法和设备 Download PDFInfo
- Publication number
- CN101344856A CN101344856A CNA2008100986335A CN200810098633A CN101344856A CN 101344856 A CN101344856 A CN 101344856A CN A2008100986335 A CNA2008100986335 A CN A2008100986335A CN 200810098633 A CN200810098633 A CN 200810098633A CN 101344856 A CN101344856 A CN 101344856A
- Authority
- CN
- China
- Prior art keywords
- bytecode
- local code
- code
- address
- receives
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013523 data management Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供一种增加任务执行速度的方法和设备,具体地讲,提供一种通过将代码编译为字节码,并以块而非以字节码为单位执行本地代码来增加任务执行速度的方法和设备,其中,所述块是一组一连串的字节码。所述设备包括:接收单元,接收字节码;控制单元,识别接收的字节码是否是块的最后字节码;和发送单元,基于识别的结果发送与包括在所述块中的一个或多个字节码相应的一个或多个本地代码中的第一本地代码的地址。
Description
本申请要求于2007年6月4日提交到韩国知识产权局的第10-2007-0054661号韩国专利申请的优先权,其公开完整地包含于此,以资参考。
技术领域
根据本发明的设备和方法涉及增加任务执行速度,更具体地讲,涉及通过将代码编译为字节码并以块而非字节码为单位执行本地代码来增加任务执行速度,其中,所述块是一组一连串的字节码。
背景技术
Java是能够在任何平台上执行的面向对象的编程语言。平台指的是程序或软件(如操作系统(OS))在其上运行的硬件。用Java编写的代码通过Java编译器被编译为字节码,并且字节码通过在各种平台上引入的Java虚拟机来执行。
字节码是命令语言(如,机器语言),并且不依赖于特定的处理器。字节码通过虚拟机来执行。也就是说,虚拟机将字节码解释为相应的本地代码。因为字节码不限于特定架构,所以可以在具有Java虚拟机的任何架构上运行。因此,二进制字节码文件能够以独立于平台的方式被执行。
然而,Java的主要缺点在于执行速度。在特定架构上编译的程序比字节码运行的更快,这是因为在特定架构上编译的程序直接在硬件上运行,而无需将在另一处理器架构上被模拟的处理器架构。
对于字节码,在处理器上运行的Java虚拟机必须在开始其操作之前将字节码转换为本地代码。
正在尝试各种硬件或软件技术以增加字节码的执行速度。例如,诸如即时(JIT)编译器或比JIT编译器更快的热点(hotspot)JIT编译器的软件技术已经被用来增加Java虚拟机的速度。JIT编译器在产生本地处理器命令时伴随有编译开销和内存开销。
作为增加字节码的解释速度的硬件技术,正在尝试修改处理器架构的技术和使用外部处理器的技术。
图1是示出将字节码转换为本地代码并执行该本地代码的传统方法的流程图。
参照图1,在中央处理单元(CPU)上运行的软件程序加载字节码,并且处理器将字节码或字节码的地址发送到Java解释加速器(S10)。当发送字节码的地址时,可调用位于该地址的字节码。
然后,将字节码输入到包括在字节码解释器中的状态机,并且状态机在本地代码高速缓存中搜索字节码的被高速缓存和解释的版本(即,本地代码)(S20)。如果在本地代码高速缓存中发现了本地代码,则将本地代码的地址发送到处理器(S60)。因此,从位于该地址的本地代码开始顺序执行本地代码(S70)。
如果在本地代码高速缓存中没有发现本地代码,则状态机搜索字节码解释查询表(S30)。字节码解释查询表表示存储的以便映射或转换字节码的信息。确定字节码是否存在于查询表中(S40)。如果字节码不存在,则处理结束。如果字节码存在于查询表中,则将本地代码的解释的版本复制到本地代码高速缓存(S50)。处理器接收到本地代码高速缓存中的本地代码的地址(S60),并且从与位于该地址的本地代码相应的命令开始执行与本地代码相应的命令(S70)。
在执行最终解释的字节码的本地代码之后,将控制权移交给负责继续解释接下来的字节码的软件或硬件程序。在执行解释的字节码的最后阶段执行这种切换。
然而,因为切换由于额外开销而引起性能损失,所以需要能够通过减小切换的频率来提高系统性能的发明。
发明内容
本发明的示例性实施例克服上述缺点和以上未提及的缺点。此外,本发明不需要克服上述缺点,并且本发明的示例性实施例可不克服上述任何问题。本发明在于提供一种通过将代码编译为字节码并以块为单位执行本地代码来增加任务执行速度的设备和方法,其中,所述块是一组一连串的字节码。
根据本发明的一方面,提供了一种增加任务执行速度的设备。所述设备包括:接收单元,接收字节码;控制单元,识别接收的字节码是否是块的最后字节码;和发送单元,基于识别的结果发送与包括在所述块中的一个或多个字节码相应的一个或多个本地代码中的第一本地代码的地址。
根据本发明的另一方面,提供了一种增加任务执行速度的方法。所述方法包括:接收字节码;识别接收的字节码是否是块的最后字节码;和基于识别的结果发送与包括在所述块中的一个或多个字节码相应的一个或多个本地代码中的第一本地代码的地址。
附图说明
通过参照附图对示例性实施例进行的详细描述,本发明的上述和其他方面和特点将会变得更清楚,其中:
图1是示出将字节码转换为本地代码并执行该本地代码的传统方法的流程图;
图2是根据本发明示例性实施例的增加任务执行速度的设备的框图;
图3是包括在图2的设备中的状态机的详细框图;
图4是示出根据本发明示例性实施例的以块为单位分组的本地代码的示图;
图5是示出根据本发明示例性实施例的基于分支命令(branch command)形成的块的示图;和
图6是示出根据本发明示例性实施例的增加任务执行速度的方法的流程图。
具体实施方式
通过参考以下示例性优选实施例的详细描述和附图,本发明的各方面和特点以及实现本发明的方法可以更容易地被理解。然而,本发明可以许多不同的形式被实现,并且不应该被解释为限于在这里阐述的示例性实施例。相反地,这些示例性实施例被提供以便本公开是全面的和完整的,并且向本领域的技术人员完全地传达本发明的概念,本发明仅由权利要求限定。贯穿说明书,相同的标号表示相同的部件。
在下文中,将参照附图详细地描述本发明的示例性实施例。
图2是根据本发明示例性实施例的增加任务执行速度的设备的框图。参照图2,所述设备(在下文中称为“加速设备”)包括处理器100和解释加速器200。解释加速器200包括本地代码高速缓存210和字节码解释器220。
处理器100将字节码110发送到解释加速器200,接收与发送的字节码110相应的本地代码130,并执行与接收的本地代码130相应的命令。字节码110是程序代码被编译成的命令语言(如机器语言),并且包括独立于平台的代码。
处理器100可将字节码110的地址,而非字节码110,发送到解释加速器200。在这种情况下,处理器100可接收与字节码110相应的本地代码130,并执行与接收的本地代码130相应的命令。
为了执行与接收的本地代码130相应的命令,处理器100从解释加速器200接收本地代码的地址120,并从与位于接收的地址120的本地代码相应的命令开始,执行与存在于接收的地址120之后的地址的本地代码130相应的命令。也就是说,处理器100不是发送一个字节码并接收与所述字节码相应的本地代码。相反,处理器100发送多个字节码并执行与接收的多个本地代码相应的多个命令。
将被处理器100执行的本地代码130可以以预定块为单位而存在。块的最后本地代码可包括指示其位于块的末尾的信息。因此,处理器100执行与包括在块中的一连串本地代码相应的多个命令。在执行与块的最后本地代码相应的命令之后,处理器100接收下一块的第一本地代码的地址,并执行下一块的命令。
解释加速器200从处理器100接收字节码110,并将包括接收的字节码110的块中的第一本地代码的地址(即,地址120)发送到处理器100。
解释加速器200可从处理器100接收字节码110的地址,而非字节码110。在这种情况下,解释加速器200可使用位于接收的地址的字节码110来发送本地代码的地址120。
为了接收字节码110和发送本地代码130,解释加速器200可包括字节码解释器220。字节码解释器220包括状态机300和查询表225。
状态机300识别从处理器100接收的每个字节码110是否是块的最后字节码,并基于识别结果发送本地代码的地址120。
也就是说,如果每个接收的字节码110不是块的最后字节码,则状态机300将与每个字节码110相应的本地代码存储在本地代码高速缓存210中。如果每个接收的字节码110是块的最后字节码,则状态机300将与块的第一字节码相应的本地代码的地址120发送到处理器100。稍后将参照图3详细地描述状态机300。
根据本实施例的加速设备将程序代码编译为字节码,将字节码解释为相应的本地代码,并执行该本地代码。程序代码可包括Java代码,然而这并不表示本实施例的加速设备只根据Java代码来执行任务。应该理解,加速设备在实时地执行编译和解释的所有环境下操作。
图3是包括在图2的加速设备中的状态机300的详细框图。状态机300包括接收单元310、解释器320、数据管理单元330、控制单元340、代码识别单元350、查询表搜索单元360和发送单元370。
接收单元310从处理器100接收字节码。如果处理器100发送字节码的地址,则接收单元310可接收字节码的地址。
代码识别单元350识别与接收的字节码相应的本地代码是否存在于本地代码高速缓存210中。本地代码高速缓存210是能够被高速读取和写入的存储空间,它临时存储本地代码。代码识别单元350识别与接收的字节码相应的本地代码是否存储在本地代码高速缓存210中。
查询表搜索单元360搜索查询表225以识别接收的字节码是否存在于查询表225中。查询表225说明字节码和本地代码之间的相应关系。通过搜索查询表225,查询表搜索单元360可识别是否存在与特定字节码相应的本地代码以及该本地代码存在于何处。
解释器320将接收的字节码解释为本地代码。也就是说,如果代码识别单元350确定与接收的字节码相应的本地代码没有存储在本地代码高速缓存210中,并且如果查询表搜索单元360的搜索结果指示不存在与接收的字节码相应的本地代码,则解释器320分析接收的字节码并产生本地代码。
数据管理单元330将本地代码存储在本地代码高速缓存210中。也就是说,当查询表搜索单元360识别出与接收的字节码相应的本地代码的位置时,数据管理单元330将本地代码存储在本地代码高速缓存210中。可选择地,当解释器320产生本地代码时,数据管理单元330将产生的本地代码存储在本地代码高速缓存210中。
数据管理单元330响应于从控制单元340接收的控制命令来存储本地代码。数据管理单元330可根据接收控制命令的顺序来顺序地将本地代码存储在本地代码高速缓存210的存储空间中。例如,当前本地代码被存储在与前一存储的本地代码相邻的地址。
数据管理单元330可包括说明是否存储有本地代码以及本地代码存储在何处的索引表。在这种情况下,数据管理单元330可将本地代码存储在本地代码高速缓存210的任意位置。一旦存储了本地代码,则数据管理单元330就可更新索引表。
控制单元340识别接收的字节码是否是块的最后字节码。块的最后字节码可包括指示其位于块的末尾的信息。控制单元340使用该信息来识别接收的字节码是否是块的最后字节码。例如,每个字节码可包括指示其是否是最后字节码的标志。如果标志的值是0,则字节码不是最后字节码。如果标志的值是1,则可将字节码设置为最后字节码。
此外,控制单元340控制接收单元310、解释器320、数据管理单元330、代码识别单元350、查询表搜索单元360和发送单元370的全部操作。
基于控制单元340的识别结果,发送单元370将与块中的一个或多个字节码相应的一个或多本地代码中的第一本地代码发送到处理器100。
当接收到第一本地代码的地址时,处理器100从与位于接收的地址的第一本地代码相应的命令开始执行与块的所有本地代码相应的命令。处理器100还可参照索引表来识别将被执行的本地代码的顺序和最后本地代码的位置。
图4是示出根据本发明示例性实施例的以块为单位分组的本地代码的示图。
如上所述,本地代码存储在本地代码高速缓存210中。如图4所示,本地代码可以以块为单位来存储。也就是说,在一个或多个块(即,第一块410至第三块430)中的每一个块中可包括一个或多个本地代码。
当接收单元310接收到字节码时,代码识别单元350和查询表搜索单元360识别是否存在与接收到的字节码相应的本地代码。解释器320基于识别结果产生本地代码,并且数据管理单元330以块为单位将存储在分开的存储介质中的本地代码或产生的本地代码存储在本地代码高速缓存210中。
如果控制单元340识别出接收的字节码是第一块410、第二块420或第三块430的最后字节码,则控制单元340提取第一块410的第一本地代码411、第二块420的第一本地代码421或第三块430的第一本地代码431的地址,并通过发送单元370将提取的地址发送到处理器100。这里,本地代码的地址表示本地代码高速缓存210中的地址。接收到提取的地址的处理器100从位于接收的地址的第一本地代码411、421或431开始顺序提取本地代码,并且执行与提取的本地代码相应的命令。这一操作持续到与第一块410、第二块420或第三块430的最后本地代码相应的命令被执行为止。当根据第一块410、第二块420或第三块430的所有本地代码的任务被完成时,接收单元310接收下一字节码。
图5是示出根据本发明示例性实施例的基于分支命令形成的块的示图。
在本发明中,块可以被理解为一组命令。也就是说,包括在块中的一连串命令被顺序执行。因此,可期望在块中具有大量的本地代码,以便减少编译和解释的切换。事实上,块的大小可由分支命令的位置来确定。
例如,当诸如“if”命令的分支命令被包括在块中时,可通过运行时处理的状态来确定随后的任务。因此,随后的任务必然包括在另一块中。
最后,与块的最后本地代码相应的命令可以是分支命令,并且块可分支到两个或多个块。
参照图5,因为与第一块510的最后本地代码相应的命令是分支命令,所以第一块510在分叉点501分支到第二块520和第三块530。
另外,因为分别与第二块520和第三块530的最后本地代码相应的命令是分支命令,所以第二块520和第三块530在分叉点502和503分别分支到第四块540和第五块550以及第六块560和第七块570。
如上所述,通过分支命令的位置来确定分叉点的位置。然而,分叉点也可根据设置而位于任意位置。
图6是示出根据本发明示例性实施例的增加任务执行速度的方法的流程图。
为了增加任务执行速度,状态机300的接收单元310从处理器100接收字节码或字节码的地址(S610)。
代码识别单元350识别与接收的字节码相应的本地代码是否存储在本地代码高速缓存210中(S620)。当识别出字节码的地址时,代码识别单元350可调用位于该地址的字节码,并通过使用调用的字节码来识别与字节码相应的本地代码是否存储在本地代码高速缓存210中。
当与接收的字节码相应的本地代码存储在本地代码高速缓存210中时,发送单元370将本地代码高速缓存210中的本地代码的地址发送到处理器100(S690)。
在接收到本地代码的地址之后,处理器100从与位于接收的地址的本地代码相应的命令开始,执行与相应块的所有本地代码相应的命令(S700)。
当与接收的字节码相应的本地代码没有存储在本地代码高速缓存210中时,查询表搜索单元360搜索查询表225(S630),并识别接收的字节码是否存在于查询表225中(S640)。
当在查询表225中发现接收的字节码时,控制单元340识别接收的字节码是否是块的最后字节码(S660)。
当在查询表225中没有发现接收的字节码时,控制权被移交给解释器320,并且解释器320产生与接收的字节码相应的本地代码(S650)。随后,控制单元340识别接收的字节码是否是块的最后字节码(S660)。
如果接收的字节码是块的最后字节码,则发送单元370将与接收的字节码相应的本地代码的地址发送到处理器100(S690)。
如果接收的字节码不是块的最后字节码,则数据管理单元330将与接收的字节码相应的本地代码存储在本地代码高速缓存210中(S670)。这里,数据管理单元330可更新说明是否存储有本地代码以及本地代码存储在何处的索引表。
在将本地代码存储在本地代码高速缓存210中并且更新索引表之后,接收单元310接收下一字节码或下一字节码的地址(S680)。随后,重复执行识别是否存在与接收的字节码相应的本地代码和识别接收的字节码在相应块中的位置的操作。
如上所述,根据本发明的增加任务执行速度的设备和方法可通过将代码编译为字节码并以块为单位执行本地代码来增加任务执行速度,其中,所述块是一组一连串的字节码。
虽然已经参照本发明的示例性实施例具体显示和描述了本发明,但是本领域普通技术人员应该理解,在不脱离由权利要求限定本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。示例性实施例应该仅被考虑为说明性的目的,而非限制性的目的。
Claims (14)
1、一种增加任务执行速度的设备,所述设备包括:
接收单元,接收字节码;
控制单元,确定接收的字节码是否是块的最后字节码;和
发送单元,基于确定的结果发送与包括在所述块中的一个或多个字节码相应的一个或多个本地代码中的第一本地代码的地址。
2、如权利要求1所述的设备,其中,所述块包括在分支命令之间存在的命令的字节码。
3、如权利要求1所述的设备,还包括:数据管理单元,基于确定的结果将与接收的字节码相应的本地代码存储在本地代码高速缓存中。
4、如权利要求3所述的设备,其中,发送单元发送与存储在本地代码高速缓存中的本地代码的块的第一字节码相应的本地代码的地址。
5、如权利要求1所述的设备,还包括:处理器,接收本地代码的地址,并根据与包括在所述块中的字节码相应的本地代码执行任务。
6、如权利要求1所述的设备,还包括:解释器,基于是否存在与接收的字节码相应的本地代码来产生与接收的字节码相应的本地代码。
7、如权利要求1所述的设备,其中,字节码包括通过Java编译器编译的Java代码。
8、一种增加任务执行速度的方法,所述方法包括:
接收字节码;
识别接收的字节码是否是块的最后字节码;和
基于识别的结果发送与包括在所述块中的一个或多个字节码相应的一个或多个本地代码中的第一本地代码的地址。
9、如权利要求8所述的方法,其中,所述块包括在分支命令之间存在的一个或多个命令的字节码。
10、如权利要求8所述的方法,还包括:基于识别的结果将与接收的字节码相应的本地代码存储在本地代码高速缓存中。
11、如权利要求10所述的方法,其中,发送第一本地代码的地址的步骤包括:发送与存储在本地代码高速缓存中的本地代码的块的第一字节码相应的本地代码的地址。
12、如权利要求8所述的方法,还包括:接收与包括在所述块中的字节码相应的本地代码的地址,并根据本地代码执行任务。
13、如权利要求8所述的方法,还包括:基于是否存在与接收的字节码相应的本地代码来产生与接收的字节码相应的本地代码。
14、如权利要求8所述的方法,其中,字节码包括通过Java编译器编译的Java代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2007-0054661 | 2007-06-04 | ||
KR1020070054661A KR101407628B1 (ko) | 2007-06-04 | 2007-06-04 | 작업 수행 속도를 향상시키는 장치 및 방법 |
KR1020070054661 | 2007-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101344856A true CN101344856A (zh) | 2009-01-14 |
CN101344856B CN101344856B (zh) | 2014-06-04 |
Family
ID=40089750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810098633.5A Expired - Fee Related CN101344856B (zh) | 2007-06-04 | 2008-06-03 | 增加任务执行速度的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235397B2 (zh) |
JP (1) | JP5508681B2 (zh) |
KR (1) | KR101407628B1 (zh) |
CN (1) | CN101344856B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092618A (zh) * | 2013-01-15 | 2013-05-08 | 东南大学 | 基于软件Cache的Dalvik虚拟机JIT加速方法 |
WO2024060232A1 (en) * | 2022-09-23 | 2024-03-28 | Intel Corporation | Apparatus, device, method, and computer program for executing bytecode |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8286152B2 (en) * | 2007-08-22 | 2012-10-09 | International Business Machines Corporation | Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast application startup and maximal run-time performance |
US9176714B2 (en) * | 2007-11-12 | 2015-11-03 | International Business Machines Corporation | Re-using legacy libraries in software |
US9836316B2 (en) * | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
KR101694291B1 (ko) * | 2014-01-28 | 2017-01-10 | 한국전자통신연구원 | 자바 스크립트 엔진 가속 장치 및 방법 |
CN105589729A (zh) * | 2015-12-28 | 2016-05-18 | 北京锐安科技有限公司 | 一种基于嵌入式虚拟机的动态编译的方法及装置 |
US11188316B2 (en) * | 2020-03-09 | 2021-11-30 | International Business Machines Corporation | Performance optimization of class instance comparisons |
US20210405982A1 (en) * | 2020-06-25 | 2021-12-30 | Red Hat, Inc. | Bytecode transformations using virtual artifacts |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6410335A (en) * | 1987-07-03 | 1989-01-13 | Nec Corp | System for shortening compiling time |
US5768593A (en) * | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US6332216B1 (en) * | 1999-03-09 | 2001-12-18 | Hewlett-Packard Company | Hybrid just-in-time compiler that consumes minimal resource |
US7124407B1 (en) * | 2000-08-16 | 2006-10-17 | Sun Microsystems, Inc. | Method and apparatus for caching native code in a virtual machine interpreter |
EP1197847A3 (en) * | 2000-10-10 | 2003-05-21 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
US20020156977A1 (en) * | 2001-04-23 | 2002-10-24 | Derrick John E. | Virtual caching of regenerable data |
JP3808755B2 (ja) * | 2001-11-07 | 2006-08-16 | 富士通株式会社 | Jitコンパイラを備えた仮想計算機 |
FR2831969B1 (fr) * | 2001-11-08 | 2004-01-16 | Schneider Automation | Systeme de telechargement et de telemaintenance d'une carte electronique |
US7150012B2 (en) | 2002-10-15 | 2006-12-12 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
WO2004040445A1 (en) * | 2002-10-29 | 2004-05-13 | Freescale Semiconductor, Inc. | Method and apparatus for selectively optimizing interpreted language code |
JP3757235B2 (ja) * | 2003-02-18 | 2006-03-22 | 株式会社Access | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 |
KR100597413B1 (ko) * | 2004-09-24 | 2006-07-05 | 삼성전자주식회사 | 자바 바이트코드 변환 방법 및 상기 변환을 수행하는 자바인터프리터 |
US20060129990A1 (en) * | 2004-12-13 | 2006-06-15 | International Business Machines Corporation | System, method, and article of manufacture for determining execution counts associated with a software program of an embedded system |
KR100725393B1 (ko) * | 2005-05-19 | 2007-06-07 | 삼성전자주식회사 | 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법 |
-
2007
- 2007-06-04 KR KR1020070054661A patent/KR101407628B1/ko active IP Right Grant
-
2008
- 2008-01-31 US US12/023,456 patent/US9235397B2/en not_active Expired - Fee Related
- 2008-02-26 JP JP2008043716A patent/JP5508681B2/ja active Active
- 2008-06-03 CN CN200810098633.5A patent/CN101344856B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092618A (zh) * | 2013-01-15 | 2013-05-08 | 东南大学 | 基于软件Cache的Dalvik虚拟机JIT加速方法 |
WO2024060232A1 (en) * | 2022-09-23 | 2024-03-28 | Intel Corporation | Apparatus, device, method, and computer program for executing bytecode |
Also Published As
Publication number | Publication date |
---|---|
JP5508681B2 (ja) | 2014-06-04 |
CN101344856B (zh) | 2014-06-04 |
KR101407628B1 (ko) | 2014-06-13 |
KR20080106795A (ko) | 2008-12-09 |
US20080301653A1 (en) | 2008-12-04 |
JP2008299833A (ja) | 2008-12-11 |
US9235397B2 (en) | 2016-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101344856B (zh) | 增加任务执行速度的方法和设备 | |
CN100465895C (zh) | 编译器、编译方法 | |
CN109800156B (zh) | 一种基于配置文件命令的地铁信号系统自动化测试方法 | |
CN103077064B (zh) | 一种解析并执行程序语言方法及解释装置 | |
CN1981266A (zh) | 为优化的程序生成展开信息 | |
US20090049434A1 (en) | Program translating apparatus and compiler program | |
CN112630622A (zh) | ATE设备的pattern编译下载测试的方法及系统 | |
CN102779091A (zh) | 测试转化方法及装置 | |
CN104049947A (zh) | 基于动态重命名的矢量寄存器堆的寄存器重新配置 | |
CN114265772A (zh) | 一种测试用例的生成方法及一种测试方法 | |
CN108664238A (zh) | 一种解释型脚本语言c-sub的执行方法及装置 | |
CN104347081A (zh) | 一种测试场景说法覆盖度的方法和装置 | |
CN111596970B (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
CN110209565A (zh) | 一种元数据模型调试方法及其装置 | |
CN100468347C (zh) | 一种在应用模块与com组件之间传递参数的方法及装置 | |
CN111913704A (zh) | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 | |
CN101295239A (zh) | Java卡虚拟机的指令执行方法 | |
CN116594622A (zh) | 基于类型推导与数据流分析的Python程序编译方法及系统 | |
US9959101B2 (en) | Conditional sequential selection of external reference solutions | |
CN102446113B (zh) | 底层消息接口模拟方法及模拟装置 | |
CN113254027A (zh) | 一种半导体设备控制程序转换方法、系统、设备和存储介质 | |
US7340727B2 (en) | Verilog to C++ language translator | |
JP3495230B2 (ja) | エミュレーション処理方式 | |
CN118092930A (zh) | 一种适用于嵌入式交叉编译器的链接脚本转换方法、系统 | |
US8375376B2 (en) | Description processing device, description processing method, and recording medium |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20160603 |