999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java垃圾回收器在不同設(shè)備環(huán)境下的性能分析

2021-07-29 14:04:06內(nèi)蒙古呼倫貝爾職業(yè)技術(shù)學(xué)院于世萍
電子世界 2021年13期
關(guān)鍵詞:方法

內(nèi)蒙古呼倫貝爾職業(yè)技術(shù)學(xué)院 于世萍

Java垃圾回收器是java語言的根基,隨著硬件設(shè)備和java語言的發(fā)展,多個版本的java虛擬機(jī)在不同條件的硬件設(shè)備下表現(xiàn)的性能有所差異,選擇最合適的垃圾回收器可以提高基于java開發(fā)的系統(tǒng)的性能。本文分析了幾款主流的垃圾回收器,并在學(xué)校主流的辦公設(shè)備為實驗環(huán)境測試,該方法可應(yīng)用于OA系統(tǒng)開發(fā)時,配置合適時的垃圾回收器。

隨著java版本的更新,java的內(nèi)存回收算法也逐漸更新迭代,如今已經(jīng)提供了多種的垃圾回收器供開發(fā)人員選擇。面對不同性能的硬件設(shè)備和不同特征的場景,不同種類的垃圾回收器各有優(yōu)劣之分。對于開發(fā)人員而言,如果不去分析其執(zhí)行原理和算法特點,把自動內(nèi)存管理當(dāng)做黑匣子,只依賴最新版本的垃圾回收器,則不會帶來好的效果。

1 垃圾回收算法實現(xiàn)原理的分析

為實現(xiàn)在不同性能的設(shè)備上選擇最合適的垃圾回收器,本章將探究幾種垃圾回收器的工作原理和優(yōu)缺點。

1.1 引用計數(shù)法

引用計數(shù)法為每個分配的內(nèi)存空間保存一個引用計數(shù)器,統(tǒng)計有多少個內(nèi)存對象引用了這個空間。當(dāng)引用計數(shù)器的值為0時,表示該內(nèi)存空間不再使用,即可回收。雖然該方法實現(xiàn)簡單,判定效率高,但是該方法無法解決循環(huán)引用的問題,由于這個致命缺陷,如今的垃圾回收器已經(jīng)不再使用此類算法。

1.2 標(biāo)記清除算法

當(dāng)有效的內(nèi)存空間即將耗盡,則會停止程序的執(zhí)行,轉(zhuǎn)而進(jìn)行標(biāo)記和清除兩項工作:首先從引用的根開始遍歷,標(biāo)記所有被引用過的對象,然后回收其余的沒有被引用的對象。該方法雖然可以有效的解決循環(huán)引用的問題,但是該方法的執(zhí)行效率不高,且執(zhí)行期間需要暫停整個應(yīng)用程序的正常執(zhí)行,導(dǎo)致用戶體驗不好,且由于回收的空間不連續(xù),產(chǎn)生了內(nèi)存碎片,需要維護(hù)一個空閑列表來解決內(nèi)存不連續(xù)的問題。

1.3 復(fù)制算法

為解決標(biāo)記清除算法會產(chǎn)生內(nèi)存碎片的問題,提出了復(fù)制算法對標(biāo)記清除算法作了以下改進(jìn):將內(nèi)存空間分為兩塊,每次只使用一塊內(nèi)存。在執(zhí)行垃圾回收時,未被回收的內(nèi)存復(fù)制到另一塊內(nèi)存空間,并交換兩塊內(nèi)存空間的角色。復(fù)制的時候內(nèi)存空間會連續(xù)的排列好,由此可知,該方法解決了內(nèi)存碎片的問題。不過,復(fù)制算法的有效性是建立在內(nèi)存總空間較小,垃圾較多的情況下。如果需要垃圾回收的內(nèi)存空間多,每次回收的垃圾少,則會占用大量的時間進(jìn)行復(fù)制操作。

1.4 標(biāo)記壓縮算法

該算法是在標(biāo)記清除算法上的改進(jìn),該方法執(zhí)行的第一步與標(biāo)記清除算法一樣,標(biāo)記所有被引用的對象,然后將存活的對象壓縮到一部分內(nèi)存區(qū)域,連續(xù)的排列,最后將清理所有存活對象之外的空間。這種操作解決了內(nèi)存碎片的問題,相較于空閑列表法,該方法的開銷顯然更小。

根據(jù)上述的研究可知,垃圾回收器的算法各有優(yōu)劣,如果可以根據(jù)內(nèi)存空間大小不同和垃圾與存活空間的比例不同,將內(nèi)存空間合理分配,在每一部分內(nèi)存空間使用不同的算法,即可達(dá)到取長補(bǔ)短的效果。為此,大部分的垃圾回收器會將內(nèi)存劃分為新生代和老年代兩塊區(qū)域,其中新生代占用總內(nèi)存空間的1/3,老年代占用2/3。首先新生成的垃圾被分配到新生代,新生代空間又分為一個eden區(qū)和兩個survivor區(qū)域。由于全部的內(nèi)存初始分配都在新生代進(jìn)行,所以新生代的垃圾產(chǎn)生的較多,回收的頻率較高,所以新生代使用復(fù)制算法;當(dāng)新生代的內(nèi)存空間已滿切無法進(jìn)行垃圾回收時,這些存活對象會被移動到老年代中。老年代的空間大,且很少會執(zhí)行垃圾回收。老年代占用總內(nèi)存空間的2/3,使用標(biāo)記壓縮算法,雖然該算法執(zhí)行的時間較長,但是老年代只負(fù)責(zé)回收新生代區(qū)域無法回收的內(nèi)存,且老年代的空間較大,很難全部耗盡。所以老年代執(zhí)行垃圾回收的次數(shù)遠(yuǎn)少于新生代,執(zhí)行標(biāo)記壓縮算法的次數(shù)也很少。

2 垃圾回收器工作原理的分析

如今的java語言已經(jīng)更新了十四個大版本,其中也更新了多個種類的垃圾回收器,以滿足在硬件環(huán)境的性能逐漸進(jìn)步的條件下,充分利用硬件設(shè)備的性能,以達(dá)到更快速的執(zhí)行效率。目前主流的幾款垃圾回收期分別包括如下內(nèi)容。

2.1 Serial+Serial Old回收器

Serial回收器是java語言第一代垃圾回收器,Serial回收器采用復(fù)制算法,應(yīng)用與新生代;Serial Old回收器采用標(biāo)記壓縮算法,應(yīng)用于老年代。整體次采用串行回收的方式。Serial是單線程的回收器,這不僅說明該回收器只有一個線程執(zhí)行垃圾回收,還表示執(zhí)行垃圾回收時,必須暫停所有工作線程,暫停工作線程期間,會造成應(yīng)用程序停頓。但是Serial垃圾回收器省去多個線程來回切換的開銷,對于限定單核cpu的環(huán)境來說,該方法仍然可以達(dá)到一定水平的工作效率。

2.2 ParNew回收器

ParNew回收器是在Serial回收器的基礎(chǔ)上擴(kuò)展了并行回收的能力。在底層上,兩者共享了大部分的實現(xiàn)代碼,ParNew回收器同樣采用了復(fù)制算法和暫停用戶線程的機(jī)制,只是在垃圾回收執(zhí)行時,由多個線程執(zhí)行任務(wù)。在多核cpu的環(huán)境下,相較于Serial回收器,ParNew回收器執(zhí)行垃圾回收的速度要更快一些,用戶線程被暫停的時間就會短一些。ParNew回收器負(fù)責(zé)回收新生代,可搭配Serial Old回收器或者CMS回收器負(fù)責(zé)老年代的垃圾回收工作。

2.3 CMS回收器

CMS垃圾回收器可以是實現(xiàn)并發(fā)工作,即垃圾回收線程在執(zhí)行某一部分操作時可以與用戶線程同時執(zhí)行。CMS負(fù)責(zé)老年代垃圾回收,基于標(biāo)記清除算法實現(xiàn)。其工作流程可分為初始標(biāo)記、并發(fā)標(biāo)記、重新標(biāo)記、并發(fā)清除四步驟。初始標(biāo)記負(fù)責(zé)定位一些立即回收的內(nèi)存空間,并發(fā)標(biāo)記查找一些與初始標(biāo)記過有關(guān)的且未被使用的內(nèi)存。并發(fā)標(biāo)記表示該步驟的垃圾回收線程與用戶線程可以同時執(zhí)行。重新標(biāo)記負(fù)責(zé)修正并發(fā)標(biāo)記期間由于垃圾回收線程與用戶線程可以同時執(zhí)行導(dǎo)致的錯誤標(biāo)記。并發(fā)清除負(fù)責(zé)回收垃圾,該步驟的垃圾回收線程與用戶線程任然可以同時執(zhí)行。該方法可以實現(xiàn)垃圾回收線程與工作線程在某些時段的同時工作,降低了由于垃圾回收造成工作線程停頓的時間。但是其缺點也很明顯:首先CMS采用標(biāo)記清除算法,必然會造成大量內(nèi)存碎片產(chǎn)生,無法合理的利用內(nèi)存空間。其次,CMS在并發(fā)標(biāo)記階段會對垃圾對象產(chǎn)生誤判,即該階段被判斷為不是垃圾的對象,用于工作線程也在執(zhí)行的原因,這些對象有可能在標(biāo)記結(jié)束后成為垃圾。總之CMS回收器在一次垃圾回收操作中無法準(zhǔn)確的回收所有的垃圾,當(dāng)垃圾增長過快時,該方法的性能明顯下降。

2.4 Parallel scavenge回收器

Parallel scavenge回收器同樣采用了復(fù)制算法,并行回收和暫停用戶線程機(jī)制。與parnew回收器區(qū)別在于該收集器以吞吐量優(yōu)先,并且會根據(jù)當(dāng)前程序的運(yùn)行情況,動態(tài)的調(diào)整內(nèi)存分配情況,以達(dá)到吞吐量和延遲的可控制可協(xié)調(diào)。

2.5 G1回收器

G1收集器采用了與以上完全不同的分區(qū)方法,在垃圾回收期間,允許有多個線程同時工作,且擁有與應(yīng)用程序并發(fā)執(zhí)行的能力,不會完全阻塞工作線程。G1回收器將內(nèi)存空間劃分為多個區(qū),每個區(qū)之間采用復(fù)制算法,整體采用標(biāo)記壓縮算法。由于引入分區(qū)機(jī)制,G1可以自由控制垃圾回收線程的暫停時長,縮小回收范圍,優(yōu)先回收價值最高的區(qū),保證了在有限的時間內(nèi)獲取最高的回收效率。

3 實驗與分析

為驗證在學(xué)校經(jīng)常使用中等配置的硬件設(shè)備與工作中主要使用的教務(wù)管理系統(tǒng)的場景下,以上介紹的幾種垃圾回收器的優(yōu)劣,本文設(shè)計的實驗如下:實驗運(yùn)行兩個線程,第一個線程負(fù)責(zé)每秒打印一次時間,第二個線程通過循環(huán)生成字節(jié)數(shù)組占用內(nèi)存,當(dāng)達(dá)到一定的占用量后回收的操作,來模擬用戶使用教務(wù)管理系統(tǒng)。當(dāng)?shù)诙€線程回收內(nèi)存時,分別設(shè)置不同的垃圾回收器,來比較程序總共的運(yùn)行時間,總運(yùn)行時間=第一個線程的運(yùn)行時間+垃圾回收占用的時間。總時間越短,則表示垃圾回收執(zhí)行的時間越短,垃圾回收期的效果越好。表1為該實驗的執(zhí)行結(jié)果,由實驗結(jié)果可知,Parallel scavenge回收器的總時間最短,性能最優(yōu)。

表1 實驗結(jié)果對比

總結(jié):不同的垃圾回收器在不同的工作場景下各有優(yōu)劣性,一些新推出的垃圾回收器適用于互聯(lián)網(wǎng)B/S業(yè)務(wù),對處理高并發(fā)的業(yè)務(wù)請求有更好的效果,然而對于配置不高的單核cpu和簡單的教務(wù)管理系統(tǒng),反而使用早期的垃圾回收器的效果更好。

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學(xué)教學(xué)改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學(xué)習(xí)方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 日韩 欧美 国产 精品 综合| 福利一区在线| 一级在线毛片| 亚洲第一极品精品无码| 欧美一级高清片欧美国产欧美| 97综合久久| 国产毛片高清一级国语 | 久久久久人妻一区精品| 中文字幕调教一区二区视频| 国产剧情伊人| 国产在线视频导航| 91久久精品国产| 久久久久亚洲精品无码网站| 欧美国产综合视频| 亚洲 欧美 日韩综合一区| 国产杨幂丝袜av在线播放| 日韩中文精品亚洲第三区| 玖玖精品在线| 香蕉综合在线视频91| 色国产视频| 欧美精品黑人粗大| 欧美综合在线观看| 亚洲综合九九| 91美女视频在线| 亚洲成A人V欧美综合天堂| 久久精品亚洲中文字幕乱码| 伦精品一区二区三区视频| 欧美97色| 免费女人18毛片a级毛片视频| 麻豆AV网站免费进入| 天天综合色天天综合网| 欧美啪啪一区| 国产欧美日韩精品第二区| 国产欧美日韩精品综合在线| 亚洲全网成人资源在线观看| 99精品在线看| 中文字幕亚洲另类天堂| 男女猛烈无遮挡午夜视频| 黄色网址手机国内免费在线观看| 国产亚洲欧美日本一二三本道| 日韩福利在线视频| 国产第四页| 亚洲精品视频网| 欧美精品一区二区三区中文字幕| 精品无码一区二区三区在线视频| 欧美精品色视频| 欧美一道本| 一区二区三区四区日韩| 91精品网站| 国产农村妇女精品一二区| 日韩小视频在线播放| 亚洲男人的天堂在线观看| 尤物精品视频一区二区三区| 亚洲国产精品一区二区第一页免| 激情综合五月网| 国产国语一级毛片在线视频| 久久青草免费91线频观看不卡| 亚洲AⅤ无码国产精品| 午夜三级在线| 久久精品国产在热久久2019| 国产欧美一区二区三区视频在线观看| 国产精品一区不卡| 在线看片免费人成视久网下载| jizz在线免费播放| 一级毛片a女人刺激视频免费| 亚洲欧美日韩中文字幕在线| 日韩毛片免费观看| 国产色网站| 成人午夜免费观看| 亚洲无码熟妇人妻AV在线| 久久综合伊人 六十路| 色婷婷在线播放| 91丝袜乱伦| 国产精品久久久久鬼色| 亚洲天堂久久| 免费高清毛片| 国产精品午夜福利麻豆| 国产一区二区精品福利| 国产一区二区三区精品久久呦| 国产精品亚洲一区二区三区在线观看| 成人毛片在线播放| 国产91视频免费观看|