摘要

动态内存分配在现代程序中被广泛使用.通用的内存分配器通常关注于降低运行时开销和内存利用率,而在发掘所分配对象之间的特性方面有所欠缺.文中展示了一个低开销的动态优化技术"动态池分配".它在运行时构造存储形状图,从中发掘动态分配对象之间的亲缘性,把具有亲缘性的对象聚集到一段内存区域(称为内存池)里,改善了它们的数据布局.作者在实际机器上实现了动态池分配原型系统,并在GCC--O3编译的一些大量使用堆数据的SPEC 2000和2006程序上进行了测试.原型系统在两台实际机器上获得了13.1%和11.8%的平均加速比,对一些程序的加速高达82.2%.此外,作者还研究了CPU的高速缓存大小对池分配效果的...