选择性编译能降低程序编译开销和生成代码的存储空间需求,但面临热方法检测延时和编译延时问题.现有降低这些延时的方法因需要复杂数据结构、算法或特殊硬件的支持而不适合嵌入式虚拟机平台.针对嵌入式平台,提出使用将可执行代码缓存至...选择性编译能降低程序编译开销和生成代码的存储空间需求,但面临热方法检测延时和编译延时问题.现有降低这些延时的方法因需要复杂数据结构、算法或特殊硬件的支持而不适合嵌入式虚拟机平台.针对嵌入式平台,提出使用将可执行代码缓存至文件并按需复用的方法来降低这两种延时.为此,本文以Android系统虚拟机的即时编译器为基础,设计实现了轻量级的CCARF(Code Cache and Reuse Framework).CCARF为即时编译器设计了位置无关代码生成算法,使编译生成的代码不含位置依赖信息,从而保证代码可被正确复用;基于该算法,CCARF实现了一个代码管理器,高效地将位置无关代码缓存并复用.SPECjvm98基准测试集的测试结果表明,CCARF能在控制生成代码增长的前提下,平均提升基准测试程序性能约11%.展开更多
ScalaLab is a MATLAB-like environment for the Java Virtual Machine(JVM).ScalaLab is based on the Scala programming language.It utilizes an extensive set of Java and Scala scientific libraries and also has access to ma...ScalaLab is a MATLAB-like environment for the Java Virtual Machine(JVM).ScalaLab is based on the Scala programming language.It utilizes an extensive set of Java and Scala scientific libraries and also has access to many native C/C++scientific libraries by using mainly the Java Native Interface(JNI).The performance of the JVM platform is continuously improved at a fast pace.Today JVM can effectively support demanding high-performance computing and scales well on multicore platforms.However,sometimes optimized native C/C++code can yield even better performance,by exploiting low-level programming issues,such as optimization of caches and architecture-dependent instruction sets.The present work reports some of the experiences that we gained with experiments with both Just in Time(JIT)JVM code and native code.We compare some aspects of Scala and C++that concern the requirements of scientific computing and highlight some strong features of the Scala language that facilitate the implementation of scientific scripting.This paper describes how ScalaLab tries to combine the best features of the JVM with those of the C/C++technology,in order to implement an effective scientific computing environment.展开更多
文摘选择性编译能降低程序编译开销和生成代码的存储空间需求,但面临热方法检测延时和编译延时问题.现有降低这些延时的方法因需要复杂数据结构、算法或特殊硬件的支持而不适合嵌入式虚拟机平台.针对嵌入式平台,提出使用将可执行代码缓存至文件并按需复用的方法来降低这两种延时.为此,本文以Android系统虚拟机的即时编译器为基础,设计实现了轻量级的CCARF(Code Cache and Reuse Framework).CCARF为即时编译器设计了位置无关代码生成算法,使编译生成的代码不含位置依赖信息,从而保证代码可被正确复用;基于该算法,CCARF实现了一个代码管理器,高效地将位置无关代码缓存并复用.SPECjvm98基准测试集的测试结果表明,CCARF能在控制生成代码增长的前提下,平均提升基准测试程序性能约11%.
文摘ScalaLab is a MATLAB-like environment for the Java Virtual Machine(JVM).ScalaLab is based on the Scala programming language.It utilizes an extensive set of Java and Scala scientific libraries and also has access to many native C/C++scientific libraries by using mainly the Java Native Interface(JNI).The performance of the JVM platform is continuously improved at a fast pace.Today JVM can effectively support demanding high-performance computing and scales well on multicore platforms.However,sometimes optimized native C/C++code can yield even better performance,by exploiting low-level programming issues,such as optimization of caches and architecture-dependent instruction sets.The present work reports some of the experiences that we gained with experiments with both Just in Time(JIT)JVM code and native code.We compare some aspects of Scala and C++that concern the requirements of scientific computing and highlight some strong features of the Scala language that facilitate the implementation of scientific scripting.This paper describes how ScalaLab tries to combine the best features of the JVM with those of the C/C++technology,in order to implement an effective scientific computing environment.