Merge branch ‘master’ of code.gitlink.org.cn:jeshrz/new-memory
本项目旨在对现有内存分配器进行优化,使其具有分配对象访问热度的感知能力,能够在分配时预测被分配对象在未来的访问频率,从而调整相应对象的布局,使得使用该分配器的应用程序能够获得更优的程序局部性,提高硬件缓存的使用率,进而在运行性能方面得到提升。
本项目核心思想是将冷热对象的布局进行分离,分别为冷热对象设置了内存池,将热对象集中在一起,冷对象集中在一起,由于程序会频繁的访问热对象,因此能够充分利用硬件的预取能力和缓存能力,提高cache line的命中率和TLB的命中率。
优化后的内存分配器主要包含两个模块:离线分析模块和在线推理模块。其中:
详细技术报告见report.pdf。
report.pdf
本项目的主要挑战着在于如何在线推理时的开销。具体体现在:
在 GeminiGraph 上进行测试,应用twitter数据集和rgg数据集,与使用没有热度感知的内存分配器相比,性能提升约5%。
性能提升、对象布局等测试结果详见results目录下文件。
results
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
题目:热度感知的内存布局优化
简介
本项目旨在对现有内存分配器进行优化,使其具有分配对象访问热度的感知能力,能够在分配时预测被分配对象在未来的访问频率,从而调整相应对象的布局,使得使用该分配器的应用程序能够获得更优的程序局部性,提高硬件缓存的使用率,进而在运行性能方面得到提升。
本项目核心思想是将冷热对象的布局进行分离,分别为冷热对象设置了内存池,将热对象集中在一起,冷对象集中在一起,由于程序会频繁的访问热对象,因此能够充分利用硬件的预取能力和缓存能力,提高cache line的命中率和TLB的命中率。
优化后的内存分配器主要包含两个模块:离线分析模块和在线推理模块。其中:
详细技术报告见
report.pdf
。挑战
本项目的主要挑战着在于如何在线推理时的开销。具体体现在:
开发量 & 交付件
测试
在 GeminiGraph 上进行测试,应用twitter数据集和rgg数据集,与使用没有热度感知的内存分配器相比,性能提升约5%。
性能提升、对象布局等测试结果详见
results
目录下文件。References