| 提高堆数据局部性的动态池分配技术 |
| 王振江[1,2,3] 武成岗[1,2] 张兆庆[1,2] |
| 关键词:池分配 变长调用链 亲缘性 数据布局 动态优化 |
| 主要内容:动态内存分配在现代程序中被广泛使用.通用的内存分配器通常关注于降低运行时开销和内存利用率,而在发掘所分配对象之间的特性方面有所欠缺.文中展示了一个低开销的动态优化技术"动态池分配".它在运行时构造存储形状图,从中发掘动态分配对象之间的亲缘性,把具有亲缘性的对象聚集到一段内存区域(称为内存池)里,改善了它们的数据布局.作者在实际机器上实现了动态池分配原型系统,并在GCC--O3编译的一些大量使用堆数据的SPEC 2000和2006程序上进行了测试.原型系统在两台实际机器上获得了13.1%和11.8%的平均加速比,对一些程序的加速高达82.2%.此外,作者还研究了CPU的高速缓存大小对池分配效果的影响. |
| 《计算机学报》 2011,34(4).-665-675 |
| 全文下载请进入http://hightech.stlib.cn/tpi_1/sysasp/include/index.asp |