冗余数组边界检查与对象内联优化

来源 :复旦大学 | 被引量 : 0次 | 上传用户:signet886
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Java是一门应用很广的流行语言。它有良好跨平台性和优秀的安全性等优点。但是同时运行速度低下一直成为它不足。本文试图从两个方面入手针对Java运行时性能进行调优。一方面是Java语言的异常安全机制。作为一个类型安全程序语言,Java要求对每次数组访问提供边界检查。这些检查指令减慢了Java程序的运行速度。算法ABCE在编译时维护并不断更新数组访问相关变量的取值信息,然后根据这些信息识别出那些冗余的数组边界检查,最后删除它们,从而达到提高程序性能的目的。另一方面是Java语言的面向对象特性。Java是一门面向对象语言。但是面向对象语言将引起数据在内存中分散分布,导致内存的局部性变差和程序解引用操作的增多,后果就是程序运行时性能退化。本文提供的对象内联优化将分析程序中的数据关系,并把符合条件的数据分配到内存的连续空间中,有效地缓解了性能退化。冗余数组边界检查消除和对象内联优化实现在基于开源open64平台的Java编译器opencj上。科学计算类测试集SciMark2.0的测试表明ABCE算法平均删除了76%的边界检查指令,其中LU子程序,该算法的加速近似达到理论最大值。对象内联优化的测试实验也表明,它能有效提高面向对象语言的运行时性能。
其他文献
在过去的几十年中,带式输送机一直朝着长距离、高带速、大功率、高适应性的方向发展。随着带式输送机的距离越来越长、运量越来越大、布置越来越复杂,其动力学特性也越来越复杂
云计算、大数据、信息安全作为信息技术发展的重要手段承载了当今社会发展的方方面面,云计算以其符合时代需求的服务方式和高性能从2006年提出至今便获得了井喷式的发展,可以预
互联网为信息的共享和交互提供了一个便利的平台,但其开放性同时也对信息的安全性提出了严峻的挑战。在现代互联网高速发展的同时,计算机安全问题日益突出,信息安全已经逐渐
域名系统(Domain Name System, DNS)是Internet的核心技术之一,提供了针对域名和IP地址间相互映射的解析服务。人性化的域名为Internet用户接入互联网的操作提供了便利,域名
射频识别技术(Radio Frequency Identification,RFID)是一种非接触式自动识别技术。随着 RFID技术的不断发展,它所应用到的领域和地区在不断扩大,草原畜牧业作为地区经济发展的
支持向量机(Support Vector Machine,SVM)是近年来受到广泛关注的一类学习机器,它以统计学习理论为基础,具有全局最优、适应性强、推广能力强等优点,已成功应用于模式识别、
油气储层在我国石油工业中占有非常重要的地位。三维地质模型数据量庞大,一般包括数百万到数千万个三维网格体数据,通常不能把这样的地质模型直接应用到模拟系统中。对这样大
图像配准是图像处理领域的一个重要研究方向,是完成图像融合工作最基本的一步,在医学、遥感和军事等领域具有很强的应用价值。虽然同一场景的多模态图像在灰度属性和分辨率等
网络最重要的功能就是实现信息的传输与共享。现有网络中的数据都是依靠中间节点以“存储-转发”方式来传送。在实际应用中也先后出现了C/S和P2P架构,它们具有简单存储转发机
日益发展的网络和飞速膨胀的信息给人们带来了很多的便利,人们已经开始习惯于上网发布信息,查找资料,网上科研。各种各样的应用系统和web服务出现了丰富的数据资源。为了能有