研究组论文GoFree: Reducing Garbage Collection via Compiler-inserted Freeing被中国计算机学会推荐B类国际会议CGO 2025(International Symposium on Code Generation and Optimization)录用!本届会议共收稿58篇,录用14篇,录用率24%。
彭浩然、张昱*、Michael D. Ernst、陈金宝、丁伯尧. GoFree: Reducing Garbage Collection via Compiler-inserted Freeing. 21st ACM/IEEE International Symposium on Code Generation and Optimization (CGO). Las Vegas, Nevada, USA, March 1–5, 2025.
代码见:https://doi.org/10.6084/m9.figshare.26785357
论文简介见微信推文。
北京时间2025年3月1日线下在CGO 2025进行论文汇报和交流。
论文摘要:
在自动管理内存的编程语言中,程序员创建新对象即可分配内存。同时,垃圾收集器会周期性地回收不可达对象,因此程序员不需要手动释放内存。但是,垃圾收集器的扫描和回收引入了额外的系统运行开销。
已有的基于逃逸分析的显式回收优化使用编译器进行自动插桩来显式释放部分内存,从而降低垃圾收集的成本,而无需改变编程模型。本文为Go语言设计并实现了这种显式释放优化。其兼顾算法复杂度与精度,时间复杂度仅为O(N2)。此外,本文还实现了一种适用于并发环境的安全释放原语。
在六个开源Go程序上的评估结果显示,GoFree在编译过程中没有明显增加编译时间。在程序运行时,GoFree平均释放了14.1%的已分配堆内存,减少了7.3%的垃圾收集触发频率,降低了13.0%的垃圾收集时间,缩短了2.0%的总运行时间,并减少了3.6%的堆内存占用。