论文摘要
Java是一门应用很广的流行语言。它有良好跨平台性和优秀的安全性等优点。但是同时运行速度低下一直成为它不足。本文试图从两个方面入手针对Java运行时性能进行调优。一方面是Java语言的异常安全机制。作为一个类型安全程序语言,Java要求对每次数组访问提供边界检查。这些检查指令减慢了Java程序的运行速度。算法ABCE在编译时维护并不断更新数组访问相关变量的取值信息,然后根据这些信息识别出那些冗余的数组边界检查,最后删除它们,从而达到提高程序性能的目的。另一方面是Java语言的面向对象特性。Java是一门面向对象语言。但是面向对象语言将引起数据在内存中分散分布,导致内存的局部性变差和程序解引用操作的增多,后果就是程序运行时性能退化。本文提供的对象内联优化将分析程序中的数据关系,并把符合条件的数据分配到内存的连续空间中,有效地缓解了性能退化。冗余数组边界检查消除和对象内联优化实现在基于开源open64平台的Java编译器opencj上。科学计算类测试集SciMark2.0的测试表明ABCE算法平均删除了76%的边界检查指令,其中LU子程序,该算法的加速近似达到理论最大值。对象内联优化的测试实验也表明,它能有效提高面向对象语言的运行时性能。
论文目录
相关论文文献
- [1].基于污点分析的数组越界缺陷的静态检测方法[J]. 软件学报 2020(10)
- [2].二维数组在俄罗斯方块游戏编程中的应用分析[J]. 数码世界 2020(02)
- [3].怎样用给出的数组比例[J]. 数学小灵通(5-6年级版) 2010(03)
- [4].“数组”教学设计[J]. 中小学电教(下) 2011(11)
- [5].C程序数组越界的运行时验证技术研究与实现[J]. 计算机工程与应用 2015(11)
- [6].C语言中二维数组的输出样式辨析[J]. 软件 2013(07)
- [7].不含L连续数组的排列计数问题的研究[J]. 广东技术师范学院学报 2013(07)
- [8].基于容器对象的动态控件数组研究[J]. 现代电子技术 2012(01)
- [9].基于C++二维数组的几个问题研究[J]. 硅谷 2012(22)
- [10].用多位数动态数组实现进制转换的研究[J]. 湖南文理学院学报(自然科学版) 2011(01)
- [11].C++动态数组的实现与重用[J]. 计算机技术与发展 2010(02)
- [12].二维数组复杂性测度的统计复杂度改进[J]. 哈尔滨工业大学学报 2009(10)
- [13].计算机数组分析研究[J]. 硅谷 2008(02)
- [14].运用控件数组提高编程效率[J]. 职业 2008(36)
- [15].关于印度奇妙数组三个性质的证明[J]. 中学数学 2008(21)
- [16].数组越界的静态分析[J]. 电脑编程技巧与维护 2012(04)
- [17].基于链表结构的多维动态数组设计方法[J]. 西北师范大学学报(自然科学版) 2011(01)
- [18].程序符号执行中的数组分析[J]. 长江大学学报(自然科学版)理工卷 2010(01)
- [19].C语言中动态数组的构建[J]. 科技信息 2010(24)
- [20].关于在C++中数组申请归还实现的研究与应用[J]. 福建电脑 2009(04)
- [21].浅析C++中获取数组长度的若干方法[J]. 电脑知识与技术 2018(19)
- [22].两类有趣数组[J]. 吉首大学学报(社会科学版) 2013(S1)
- [23].在C语言中利用动态结构数组处理学生成绩表[J]. 软件导刊 2012(08)
- [24].ABCE:Java冗余数组越界检查消除[J]. 小型微型计算机系统 2010(11)
- [25].影院售票系统开发中动态数组的灵活应用[J]. 计算机应用与软件 2009(07)
- [26].混合计算工程中复合数据的传递(Ⅲ)——派生类型内嵌数组[J]. 武汉大学学报(工学版) 2009(04)
- [27].0LAP中多维数组的一种改进压缩算法[J]. 计算机与现代化 2008(10)
- [28].倍增法之后缀数组解决重复子串的问题[J]. 中国新通信 2016(17)
- [29].抓住特征 分步思考[J]. 数学大世界(小学5-6年级版) 2015(06)
- [30].一种过程内及过程间数组越界故障的静态检测方法[J]. 计算机研究与发展 2010(S1)
标签:静态编译器论文; 数组边界检查消除论文; 对象内联论文; 优化论文; 性能论文;