改善堆中数据布局的动态优化技术研究

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:nnhdceh986532
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
处理器和内存之间的性能差距正变得越来越大,使内存成为整个计算机系统的性能瓶颈之一。提高数据局部性可以有效地利用处理器高速缓存,是缓解内存和处理器性能差距的有效手段。很多程序在运行时从堆中分配大量数据,这些数据的布局优化对程序性能有很大影响,但是这些技术现在仍处于研究阶段,没有在常用编译器中得到广泛应用。动态优化是在运行时对二进制程序进行的优化,它不需要程序的源代码和重新编译,可以在大量的遗产代码和商用软件上直接使用,扩展了优化技术的应用范围。但是由于缺乏源代码等高层信息,如何进行安全和高效的动态优化是具有重要理论意义和实用价值的研究课题。   本文针对堆数据的动态优化技术进行了研究,提出了动态池分配和动态结构体拆分两种优化手段,分别改善了堆中对象之间和对象内部的数据布局,提高了程序的性能。   本文的主要贡献如下:   ·提出了使用变长调用链来表达调用点上下文的方法。这种方法可以识别包装函数并在需要的时候增长调用链,在不同程序之间和同一程序内的各个调用点之间具有自适应性,避免了无关对象被分配到同一个内存池的问题。与现有的基于调用点的策略相比,该方法可以减少3%到6%的平均运行时间,最高可达82%。   ·提出基于亲缘性的对象组合并的池分配策略。本文提出了两种亲缘性概念,并利用存储形状图上的亲缘性识别,合并具有亲缘性的对象组。这种方法解决了由于算法设计或编译器优化把这些对象分散到不同调用点,导致它们分散到不同的内存池里的问题。采用该合并策略的动态池分配技术能够进一步减少一些程序的运行时间。   ·提出一种在运行时进行结构体拆分优化及保证优化安全性的方法。通过对动态结构体拆分的安全性问题的研究,本文提出了使用页保护机制和动态地址检查的方法来保证优化的安全性,也为静态编译器的同类激进优化提供了一种解决途径。本文的方法对一些程序的加速比高达128%。   ·提出了动态结构体拆分后降低代码运行开销的几种方法。本文通过代码提升的方法,大大降低了数组中的结构体在拆分后的顺序访问开销。对内存池里的结构体,本文提出了对齐池分配和地址比对的方法,降低了访问这些结构体的操作强度。这些方法进一步提高了动态结构体拆分优化后的程序性能。   ·基于上述研究成果,本文设计实现了动态堆数据布局优化原型系统DigitalBridgedopt。该系统直接对应用程序进行优化,自动选择符合要求的堆对象进行动态池分配和动态结构体拆分优化。在该系统中的实验验证了上述方法的有效性。
其他文献
随着WWW上信息的爆炸性增长,在如此海量的数据中发现有用的信息变得越来越困难。数据挖掘就是从大量的数据中发现隐含的规律性的内容,解决数据的应用质量问题。充分利用有用的
随着信息化技术的发展,对科技项目的管理系统,在安全性,高效性,可复用性,可维护性,开发周期等方面都有很高的要求,因此使用良好的体系结构和框架是系统开发的首要问题。本文
地球上现存的植物种类大约有50多万种,分为原核、藻类、粘菌、真菌、苔藓、蕨类、种子植物等几大类群。植物生长状况与周围的环境因素有着密切的联系,其中光照强度、空气温度、
数据挖掘是通过仔细分析大量数据来揭示有意义的新的关系、趋势和模式的过程,是信息处理技术研究领域的一项重要课题。它是指从大型数据库或数据仓库中提取隐含的、未知的、
随着信息技术的快速发展和人们对数字化知识及资源需求的不断增长,传统的搜索技术在海量数据面前已经遇到信息爆炸的瓶颈,通过基于关键词技术的搜索技术已经不能满足人们对知
本文尝试从本体语义的角度,通过使用本体语义知识来改进文献相似性测度,从而将本体语义与文献聚类相结合,目的是为了提高文献的聚类效果。为此本文提出了一种基于主题词表的
随着计算机技术的发展和数据库的广泛应用,企业信息系统中的“信息孤岛”问题越来越严重。异构数据源集成技术作为企业获取数据的重要方法,可以完成数据从数据源向目标数据库
图纸生成与标注技术,是指基于产品设计成果绘制图纸内容、生成尺寸标注的技术。本文研究的基于三维场景的室内建筑图纸自动生成与标注,是指基于具备完整信息的三维室内建筑场景
无线通信技术以及移动嵌入式设备制造技术的发展,使得移动用户可以通过无线网络随时随地的接入Internet接收信息以及发布信息,随着无线网络的覆盖范围更大,用户客户端更加便携,用
随着虚拟化技术的发展,近年来传统数据中心正朝着虚拟化数据中心方向转变,本文研究虚拟化数据中心的资源管理技术。   一类虚拟化数据中心将节点计算资源封装成虚拟机实例供