[发明专利]在运行时对堆数据进行池分配的方法有效
| 申请号: | 200910243917.3 | 申请日: | 2009-12-25 |
| 公开(公告)号: | CN101763308A | 公开(公告)日: | 2010-06-30 |
| 发明(设计)人: | 王振江;武成岗 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | G06F12/02 | 分类号: | G06F12/02 |
| 代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
| 地址: | 100190 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 运行 数据 进行 分配 方法 | ||
技术领域
本发明涉及内存分配领域,特别涉及在运行时对堆数据进行池分配的 方法。
背景技术
随着处理器技术的快速发展,处理器速度和存储系统之间的速度差已 经越来越大。存储系统的速度正成为计算机整体运行速度进一步提高的瓶 颈。为了提高存储系统的速度,现有技术中提出了多种方法,其中的提高 数据的局部性的方法可以在不增加带宽需求的情况下提高存储系统的性 能,因而得到了广泛的应用。
堆(heap)是程序内存空间中的一块区域,程序运行时动态需要的内 存是从堆中进行分配的。例如C程序通过malloc和calloc等系统函数从堆 中申请内存,用free函数将申请的内存释放回堆中;C++程序通过new操 作申请,通过delete操作释放;Java程序也通过new操作申请,但是通过 垃圾收集器(Garbage Collector,GC)来自动释放不再使用的内存。在很 多程序中,堆数据占据了总数据的很大一部分,因此对堆数据进行数据布 局,对于提高数据的局部性,进而提高存储系统的性能具有很重要的意义。
以参考文献1“X.Huang,S.M.Blackburn,K.S.McKinley,J.E.B.Moss, Z.Wang,and P.Cheng.The garbage collection advantage,improving program locality.In Conference on Object Oriented Programming Systems Languages and Applications,pages 69-80,2004”为代表的很多现有的堆数据布局方法 的实现依赖于垃圾收集器(Garbage Collector,GC),由于GC可以在运行 时移动对象并更新它的相关引用,因此它可以根据需要动态进行数据布局 的工作。然而很多程序在运行时得不到GC的支持,此时由于别名的存在 将不能保证更新被移动数据的所有相关引用,所以在这种情况下移动一个 数据对象可能会引起程序错误。因此,为了避免程序出错,在分配数据时 就应当考虑数据的局部性,并把它们从合适的位置分配。池分配(Pool Allocation)是数据分配的一种方法,池分配是把所有堆数据对象分成不同 的组,分配堆数据对象时从所在组的“内存池”(Memory Pool,一段连续 的内存空间)里分配,以提高组内的数据对象的局部性。参考文献2“C. Lattner and V.Adve.Automatic pool allocation:Improving performance by controlling data structure layout in the heap.In Conference on Programming Language Design and Implementation,pages 129-142,2005”所公开的一种 现有的池分配方法是在编译器中使用启发式方法识别属于同一个数据结 构(如链表的所有节点,树的所有节点等)的堆数据对象,然后把它们从 同一个内存池里分配。这种方法依赖于程序源代码和特定的编译器。
参考文献3“S.Rubin,R.Bodik,and T.M.Chilimbi.An efficient profile analysis framework for data-layout optimizations.In Annual Symposium on Principles of Programming Languages,pages 140-153,2002”所公开的另外 一种事先训练的方法可以获得频繁的访存模式等信息,为各种优化(包括 池分配)提供依据。这种方法需要一次或多次专门的运行来进行训练,而 且训练也需要寻找有代表性的输入集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910243917.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:语义脉络文档查询方法
- 下一篇:半导体元器件自动分离机
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





