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

Java垃圾回收器在不同設備環境下的性能分析

2021-07-29 14:04:06內蒙古呼倫貝爾職業技術學院于世萍
電子世界 2021年13期
關鍵詞:方法

內蒙古呼倫貝爾職業技術學院 于世萍

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

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

1 垃圾回收算法實現原理的分析

為實現在不同性能的設備上選擇最合適的垃圾回收器,本章將探究幾種垃圾回收器的工作原理和優缺點。

1.1 引用計數法

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

1.2 標記清除算法

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

1.3 復制算法

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

1.4 標記壓縮算法

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

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

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

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

2.1 Serial+Serial Old回收器

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

2.2 ParNew回收器

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

2.3 CMS回收器

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

2.4 Parallel scavenge回收器

Parallel scavenge回收器同樣采用了復制算法,并行回收和暫停用戶線程機制。與parnew回收器區別在于該收集器以吞吐量優先,并且會根據當前程序的運行情況,動態的調整內存分配情況,以達到吞吐量和延遲的可控制可協調。

2.5 G1回收器

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

3 實驗與分析

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

表1 實驗結果對比

總結:不同的垃圾回收器在不同的工作場景下各有優劣性,一些新推出的垃圾回收器適用于互聯網B/S業務,對處理高并發的業務請求有更好的效果,然而對于配置不高的單核cpu和簡單的教務管理系統,反而使用早期的垃圾回收器的效果更好。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
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
賺錢方法
捕魚
主站蜘蛛池模板: 白丝美女办公室高潮喷水视频| 国产精品原创不卡在线| 57pao国产成视频免费播放| 日韩视频免费| 国内精自视频品线一二区| 日韩在线第三页| 日韩一区精品视频一区二区| 成人精品在线观看| 女人毛片a级大学毛片免费| 国产精品亚洲精品爽爽| 亚洲伊人天堂| 露脸一二三区国语对白| 国产网站免费观看| 成人日韩精品| 亚洲中文无码av永久伊人| 亚洲最大福利网站| 欧美一级99在线观看国产| 99久久精品国产精品亚洲| 亚洲成人在线网| 国产在线一区二区视频| 国产人在线成免费视频| 国产制服丝袜91在线| 国产一级裸网站| 992tv国产人成在线观看| 综合色亚洲| 中文字幕亚洲综久久2021| 欧美视频在线不卡| 亚洲电影天堂在线国语对白| 国产熟女一级毛片| 久久亚洲黄色视频| 国产v精品成人免费视频71pao| 欧美一区中文字幕| 91美女在线| 中文字幕在线日本| 国产免费网址| 精品国产Av电影无码久久久| 国产午夜看片| AV片亚洲国产男人的天堂| 91小视频在线| 婷婷亚洲视频| 欧美精品在线观看视频| 中国黄色一级视频| 在线人成精品免费视频| 51国产偷自视频区视频手机观看 | 欧美午夜网站| 欧美成人综合视频| 好紧好深好大乳无码中文字幕| 欧洲亚洲一区| 国产天天射| jizz在线观看| 1769国产精品视频免费观看| 日本久久网站| 亚洲天堂视频在线免费观看| 精品久久久久久成人AV| 91精品国产福利| 色老二精品视频在线观看| 亚洲国产成人在线| 国产一区二区三区精品久久呦| a级毛片一区二区免费视频| 国产精品久久久精品三级| 欧美日韩成人| 国产精品第一区在线观看| 久久久久亚洲Av片无码观看| 四虎国产精品永久一区| 精品人妻AV区| 久久久久国产一区二区| 久久综合结合久久狠狠狠97色| 中文字幕第1页在线播| 免费一极毛片| 国产精品久久久久久搜索| 中文国产成人久久精品小说| 凹凸国产分类在线观看| 午夜福利免费视频| 国产永久在线视频| 成年人福利视频| 8090成人午夜精品| 亚洲浓毛av| 亚洲福利视频一区二区| 免费在线国产一区二区三区精品| 欧美成人午夜视频免看| 国产乱视频网站| 日本免费精品|