語音播報
近日,中國科學院軟件研究所科研團隊在語言虛擬機內存管理方面取得進展,涉及垃圾回收(GC)算法的跨語言性能評估以及面向大數(shù)據(jù)系統(tǒng)的新型垃圾回收器設計。
在現(xiàn)代編程語言中,GC負責自動管理內存分配和回收,其效率直接影響用戶程序的性能。目前,學術界和工業(yè)界主要通過對比評估單一語言運行環(huán)境下的GC實現(xiàn),來分析性能差異指導GC優(yōu)化,缺少直接實現(xiàn)不同語言運行環(huán)境下的GC性能差異評估的方法。
針對這一不足,研究團隊提出了GEAR方法,通過自動構建適用于不同語言運行環(huán)境的一致性GC工作負載,實現(xiàn)跨語言GC性能評估。GEAR的核心在于設計了一組與運行環(huán)境無關的內存操作原語(MOP),用于描述影響GC行為的關鍵內存使用信息。GEAR可以將這些MOP程序自動轉換為目標語言的代碼,并生成一致的GC測試負載。為保證測試負載的真實性,團隊對Java虛擬機進行插樁,記錄實際Java應用程序執(zhí)行期間的內存操作,并將其轉換為MOP程序,進而適配到其他語言運行環(huán)境。
實驗表明,GEAR能夠在Java、Go和C#三個廣泛使用的運行環(huán)境生成一致的GC工作負載。基于此,團隊對比了這三種語言的GC實現(xiàn)情況,揭示了6項性能差異,并分析了可能原因,為未來GC優(yōu)化提供了參考依據(jù)。
相關成果被ICSE 2025會議錄用。研究工作得到國家自然科學基金和中國科學院相關項目的支持。
當前,Apache Flink、Spark等主流大數(shù)據(jù)框架普遍運行于JVM平臺,其內存管理依賴JVM虛擬機的GC算法。然而,大數(shù)據(jù)應用通常產(chǎn)生大量長生命周期的數(shù)據(jù)對象,這與傳統(tǒng)GC算法針對短生命周期對象優(yōu)化的設計假設存在差異,導致GC效率低下,影響系統(tǒng)性能。
針對這一問題,研究團隊面向大數(shù)據(jù)系統(tǒng),設計并提出了新型跨層次垃圾回收器BridgeGC,通過框架層與GC層的協(xié)同設計實現(xiàn)內存管理優(yōu)化。具體來說,BridgeGC在框架源碼層面采用極簡注解方式標記關鍵數(shù)據(jù)的創(chuàng)建和釋放點,幫助GC層識別數(shù)據(jù)對象及其生命周期;BridgeGC在GC層設計了分離式內存布局,將普通對象和大數(shù)據(jù)對象分區(qū)管理,提高內存訪問效率;BridgeGC通過自適應GC回收策略,根據(jù)對象生命周期動態(tài)調整數(shù)據(jù)處理時期,避免冗余標記等不必要操作。
研究團隊將BridgeGC集成至OpenJDK 17的ZGC回收器,并在Apache Flink、Spark等主流大數(shù)據(jù)系統(tǒng)進行驗證。實驗數(shù)據(jù)顯示,BridgeGC在保持內存使用效率的同時將GC耗時降低了31%至82%。此外,BridgeGC提升了端到端應用性能,且對業(yè)務系統(tǒng)透明,無需修改應用代碼。
相關成果被ACM TACO錄用。研究工作得到國家自然科學基金等的支持。
© 1996 - 中國科學院 版權所有 京ICP備05002857號-1
京公網(wǎng)安備110402500047號 網(wǎng)站標識碼bm48000002
地址:北京市西城區(qū)三里河路52號 郵編:100864
電話: 86 10 68597114(總機) 86 10 68597289(總值班室)
© 1996 - 中國科學院 版權所有 京ICP備05002857號-1
京公網(wǎng)安備110402500047號 網(wǎng)站標識碼bm48000002
地址:北京市西城區(qū)三里河路52號 郵編:100864
電話: 86 10 68597114(總機) 86 10 68597289(總值班室)
© 1996 - 中國科學院 版權所有
京ICP備05002857號-1
京公網(wǎng)安備110402500047號
網(wǎng)站標識碼bm48000002
地址:北京市西城區(qū)三里河路52號 郵編:100864
電話:86 10 68597114(總機)
86 10 68597289(總值班室)