球友会qy在语言虚拟机内存管理方面取得两项成果
文章来源: | 发布时间:2025-07-23 | 【打印】 【关闭】
近期,中国科研实验室软件研究所软件工程技术研究开发中心大数据系统团队在语言虚拟机内存管理方面取得研究进展,涉及垃圾回收(Garbage Collection,GC)算法的跨语言性能评估和面向大数据系统的新型垃圾回收器设计。
成果1:提出GC算法的跨语言性能评估方法GEAR
在现代编程语言中,GC 负责自动管理内存分配和回收,其效率直接影响用户程序的性能。现在,学术界和工业界主要顺利获得对比评估单一语言运行环境下(如Java虚拟机、Golang Runtime)的GC实现,来分析性能差异指导GC优化,缺少直接实现不同语言运行环境下的GC性能差异评估的方法。
针对这一不足,研究团队提出了方法GEAR,顺利获得自动构建适用于不同语言运行环境的一致性GC工作负载,实现跨语言GC性能评估。GEAR的核心在于设计了一组与运行环境无关的内存操作原语(MOP),用于描述影响GC行为的关键内存使用信息(如对象分配、应用更新等)。GEAR可以将这些MOP程序自动转换为目标语言(如Java、Go)的代码,从而生成一致的GC测试负载。为保证测试负载的真实性,研究团队对Java虚拟机(JVM)进行了插桩,记录实际Java应用程序执行期间的内存操作,并将其转换为MOP程序,进而适配到其他语言运行环境。
GEAR流程图
实验结果表明,GEAR能够在Java、Go和C#三个广泛使用的运行环境生成一致的GC工作负载。基于此,研究团队对比了这三种语言的GC实现情况,揭示出6项性能差异(如不同内存使用模式的影响差异),并分析了可能原因,为未来GC优化给予了参考依据。
相关成果论文Evaluating Garbage Collection Performance Across Managed Language Runtimes被ICSE 2025会议录用,第一作者为博士生汪钇丞,通讯作者为窦文生、王伟研究员。该研究取得国家自然科学基金、中国科研实验室青年创新促进会的支持。
论文链接:
http://www.computer.org/csdl/proceedings-article/icse/2025/056900a754/251mHsQcmeA
成果2:设计面向大数据系统的新型垃圾回收器BridgeGC
当前Apache Flink、Spark等主流大数据框架普遍运行于JVM平台,其内存管理依赖JVM虚拟机的GC算法。然而,大数据应用通常会产生大量长生命周期的数据对象,这与传统GC算法针对短生命周期对象优化的设计假设存在显著差异,导致GC效率低下,影响系统性能。
针对上述问题,研究团队面向大数据系统,设计并提出了新型跨层次垃圾回收器BridgeGC,顺利获得框架层与GC层的协同设计实现内存管理优化。具体来说,BridgeGC在框架源码层面采用极简注解方式标记关键数据的创建和释放点,帮助GC层识别数据对象及其生命周期;在GC层设计了分离式内存布局,将普通对象和大数据对象分区管理,提高内存访问效率;同时,BridgeGC顺利获得自适应GC回收策略,根据对象生命周期动态调整数据处理时期,避免冗余标记等不必要操作。
BridgeGC和传统GC流程对比图
研究团队将BridgeGC集成至OpenJDK 17的ZGC回收器,并在Apache Flink、Spark等主流大数据系统进行了验证。实验数据显示,BridgeGC在保持内存使用效率的同时,将GC耗时降低了31%至82%。BridgeGC还显著提升了端到端应用性能,且对业务系统透明,无需修改应用代码。
成果论文BridgeGC: An Efficient Cross-Level Garbage Collector for Big Data Frameworks被ACM TACO期刊录用。第一作者为博士生汪钇丞,通讯作者为许利杰副研究员。该工作取得国家自然科学基金等支持。
论文链接:http://dl.acm.org/doi/pdf/10.1145/3722110
代码地址:http://github.com/BridgeGC/BridgeGC