近日,中國(guó)科學(xué)院軟件研究所科研團(tuán)隊(duì)在語(yǔ)言虛擬機(jī)內(nèi)存管理方面取得進(jìn)展,涉及垃圾回收(GC)算法的跨語(yǔ)言性能評(píng)估以及面向大數(shù)據(jù)系統(tǒng)的新型垃圾回收器設(shè)計(jì)。
在現(xiàn)代編程語(yǔ)言中,GC負(fù)責(zé)自動(dòng)管理內(nèi)存分配和回收,其效率直接影響用戶(hù)程序的性能。目前,學(xué)術(shù)界和工業(yè)界主要通過(guò)對(duì)比評(píng)估單一語(yǔ)言運(yùn)行環(huán)境下的GC實(shí)現(xiàn),來(lái)分析性能差異指導(dǎo)GC優(yōu)化,缺少直接實(shí)現(xiàn)不同語(yǔ)言運(yùn)行環(huán)境下的GC性能差異評(píng)估的方法。
針對(duì)這一不足,研究團(tuán)隊(duì)提出了GEAR方法,通過(guò)自動(dòng)構(gòu)建適用于不同語(yǔ)言運(yùn)行環(huán)境的一致性GC工作負(fù)載,實(shí)現(xiàn)跨語(yǔ)言GC性能評(píng)估。GEAR的核心在于設(shè)計(jì)了一組與運(yùn)行環(huán)境無(wú)關(guān)的內(nèi)存操作原語(yǔ)(MOP),用于描述影響GC行為的關(guān)鍵內(nèi)存使用信息。GEAR可以將這些MOP程序自動(dòng)轉(zhuǎn)換為目標(biāo)語(yǔ)言的代碼,并生成一致的GC測(cè)試負(fù)載。為保證測(cè)試負(fù)載的真實(shí)性,團(tuán)隊(duì)對(duì)Java虛擬機(jī)進(jìn)行插樁,記錄實(shí)際Java應(yīng)用程序執(zhí)行期間的內(nèi)存操作,并將其轉(zhuǎn)換為MOP程序,進(jìn)而適配到其他語(yǔ)言運(yùn)行環(huán)境。
實(shí)驗(yàn)表明,GEAR能夠在Java、Go和C#三個(gè)廣泛使用的運(yùn)行環(huán)境生成一致的GC工作負(fù)載。基于此,團(tuán)隊(duì)對(duì)比了這三種語(yǔ)言的GC實(shí)現(xiàn)情況,揭示了6項(xiàng)性能差異,并分析了可能原因,為未來(lái)GC優(yōu)化提供了參考依據(jù)。
相關(guān)成果被ICSE 2025會(huì)議錄用。研究工作得到國(guó)家自然科學(xué)基金和中國(guó)科學(xué)院相關(guān)項(xiàng)目的支持。
當(dāng)前,Apache Flink、Spark等主流大數(shù)據(jù)框架普遍運(yùn)行于JVM平臺(tái),其內(nèi)存管理依賴(lài)JVM虛擬機(jī)的GC算法。然而,大數(shù)據(jù)應(yīng)用通常產(chǎn)生大量長(zhǎng)生命周期的數(shù)據(jù)對(duì)象,這與傳統(tǒng)GC算法針對(duì)短生命周期對(duì)象優(yōu)化的設(shè)計(jì)假設(shè)存在差異,導(dǎo)致GC效率低下,影響系統(tǒng)性能。
針對(duì)這一問(wèn)題,研究團(tuán)隊(duì)面向大數(shù)據(jù)系統(tǒng),設(shè)計(jì)并提出了新型跨層次垃圾回收器BridgeGC,通過(guò)框架層與GC層的協(xié)同設(shè)計(jì)實(shí)現(xiàn)內(nèi)存管理優(yōu)化。具體來(lái)說(shuō),BridgeGC在框架源碼層面采用極簡(jiǎn)注解方式標(biāo)記關(guān)鍵數(shù)據(jù)的創(chuàng)建和釋放點(diǎn),幫助GC層識(shí)別數(shù)據(jù)對(duì)象及其生命周期;BridgeGC在GC層設(shè)計(jì)了分離式內(nèi)存布局,將普通對(duì)象和大數(shù)據(jù)對(duì)象分區(qū)管理,提高內(nèi)存訪問(wèn)效率;BridgeGC通過(guò)自適應(yīng)GC回收策略,根據(jù)對(duì)象生命周期動(dòng)態(tài)調(diào)整數(shù)據(jù)處理時(shí)期,避免冗余標(biāo)記等不必要操作。
研究團(tuán)隊(duì)將BridgeGC集成至OpenJDK 17的ZGC回收器,并在Apache Flink、Spark等主流大數(shù)據(jù)系統(tǒng)進(jìn)行驗(yàn)證。實(shí)驗(yàn)數(shù)據(jù)顯示,BridgeGC在保持內(nèi)存使用效率的同時(shí)將GC耗時(shí)降低了31%至82%。此外,BridgeGC提升了端到端應(yīng)用性能,且對(duì)業(yè)務(wù)系統(tǒng)透明,無(wú)需修改應(yīng)用代碼。
相關(guān)成果被ACM TACO錄用。研究工作得到國(guó)家自然科學(xué)基金等的支持。
本文鏈接:語(yǔ)言虛擬機(jī)內(nèi)存管理研究取得進(jìn)展http://www.sq15.cn/show-12-1510-0.html
聲明:本網(wǎng)站為非營(yíng)利性網(wǎng)站,本網(wǎng)頁(yè)內(nèi)容由互聯(lián)網(wǎng)博主自發(fā)貢獻(xiàn),不代表本站觀點(diǎn),本站不承擔(dān)任何法律責(zé)任。天上不會(huì)到餡餅,請(qǐng)大家謹(jǐn)防詐騙!若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。
上一篇: “百縣對(duì)百校促就業(yè)行動(dòng)”滁州專(zhuān)場(chǎng)校企供需對(duì)接會(huì)暨“百校學(xué)子滁州行”活動(dòng)舉辦