激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 簡單了解Java垃圾回收器的種類

簡單了解Java垃圾回收器的種類

2021-03-05 14:52mengwei Java教程

這篇文章主要介紹了簡單了解Java垃圾回收器的種類,具有一定借鑒價(jià)值,需要的朋友可以參考下。

在這篇教程中我們將學(xué)習(xí)幾種現(xiàn)有的垃圾回收器。在java中,垃圾回收是一個(gè)自動(dòng)的進(jìn)程可以替代程序員進(jìn)行內(nèi)存的分配與回收這些復(fù)雜的工作。這篇是垃圾回 收教程系列的第三篇,在前面的第2部分我們看到了在java中垃圾回收是如何工作的,那是篇有意思的文章,我推薦你去看一下。第一部分介紹了java的垃圾回收,主要有jvm體系結(jié)構(gòu),堆內(nèi)存模型和一些java術(shù)語。

java有四種類型的垃圾回收器:

串行垃圾回收器(serial garbage collector)
并行垃圾回收器(parallel garbage collector)
并發(fā)標(biāo)記掃描垃圾回收器(cms garbage collector)
g1垃圾回收器(g1 garbage collector)

簡單了解Java垃圾回收器的種類

每種類型都有自己的優(yōu)勢(shì)與劣勢(shì)。重要的是,我們編程的時(shí)候可以通過jvm選擇垃圾回收器類型。我們通過向jvm傳遞參數(shù)進(jìn)行選擇。每種類型在很大程度上有所不同并且可以為我們提供完全不同的應(yīng)用程序性能。理解每種類型的垃圾回收器并且根據(jù)應(yīng)用程序選擇進(jìn)行正確的選擇是非常重要的。

1、串行垃圾回收器

串行垃圾回收器通過持有應(yīng)用程序所有的線程進(jìn)行工作。它為單線程環(huán)境設(shè)計(jì),只使用一個(gè)單獨(dú)的線程進(jìn)行垃圾回收,通過凍結(jié)所有應(yīng)用程序線程進(jìn)行工作,所以可能不適合服務(wù)器環(huán)境。它最適合的是簡單的命令行程序。

通過jvm參數(shù)-xx:+useserialgc可以使用串行垃圾回收器。

2、并行垃圾回收器

并行垃圾回收器也叫做throughputcollector。它是jvm的默認(rèn)垃圾回收器。與串行垃圾回收器不同,它使用多線程進(jìn)行垃圾回收。相似的是,它也會(huì)凍結(jié)所有的應(yīng)用程序線程當(dāng)執(zhí)行垃圾回收的時(shí)候

3、并發(fā)標(biāo)記掃描垃圾回收器

并發(fā)標(biāo)記垃圾回收使用多線程掃描堆內(nèi)存,標(biāo)記需要清理的實(shí)例并且清理被標(biāo)記過的實(shí)例。并發(fā)標(biāo)記垃圾回收器只會(huì)在下面兩種情況持有應(yīng)用程序所有線程。

當(dāng)標(biāo)記的引用對(duì)象在tenured區(qū)域;

在進(jìn)行垃圾回收的時(shí)候,堆內(nèi)存的數(shù)據(jù)被并發(fā)的改變。

相比并行垃圾回收器,并發(fā)標(biāo)記掃描垃圾回收器使用更多的cpu來確保程序的吞吐量。如果我們可以為了更好的程序性能分配更多的cpu,那么并發(fā)標(biāo)記上掃描垃圾回收器是更好的選擇相比并發(fā)垃圾回收器。

通過jvm參數(shù)xx:+useparnewgc打開并發(fā)標(biāo)記掃描垃圾回收器。

4、g1垃圾回收器

g1垃圾回收器適用于堆內(nèi)存很大的情況,他將堆內(nèi)存分割成不同的區(qū)域,并且并發(fā)的對(duì)其進(jìn)行垃圾回收。g1也可以在回收內(nèi)存之后對(duì)剩余的堆內(nèi)存空間進(jìn)行壓縮。并發(fā)掃描標(biāo)記垃圾回收器在stw情況下壓縮內(nèi)存。g1垃圾回收會(huì)優(yōu)先選擇第一塊垃圾最多的區(qū)域

通過jvm參數(shù)–xx:+useg1gc使用g1垃圾回收器

java8的新特性

在使用g1垃圾回收器的時(shí)候,通過jvm參數(shù)-xx:+usestringdeduplication。我們可以通過刪除重復(fù)的字符串,只保留一個(gè)char[]來優(yōu)化堆內(nèi)存。這個(gè)選擇在java8u20被引入。

我們給出了全部的四種java垃圾回收器,需要根據(jù)應(yīng)用場(chǎng)景,硬件性能和吞吐量需求來決定使用哪一種。

垃圾回收的jvm配置

下面的jvm關(guān)鍵配置都與java垃圾回收有關(guān)。

運(yùn)行的垃圾回收器類型

 

配置 描述
-xx:+useserialgc 串行垃圾回收器
-xx:+useparallelgc 并行垃圾回收器
-xx:+useconcmarksweepgc 并發(fā)標(biāo)記掃描垃圾回收器
-xx:parallelcmsthreads= 并發(fā)標(biāo)記掃描垃圾回收器 =為使用的線程數(shù)量
-xx:+useg1gc g1垃圾回收器

 

gc的優(yōu)化配置

 

配置 描述
-xms 初始化堆內(nèi)存大小
-xmx 堆內(nèi)存最大值
-xmn 新生代大小
-xx:permsize 初始化永久代大小
-xx:maxpermsize 永久代最大容量

 

使用jvm gc參數(shù)的例子

?
1
java -xmx12m -xms3m -xmn1m -xx:permsize=20m -xx:maxpermsize=20m -xx:+useserialgc -jar java-application.jar

總結(jié)

以上就是本文關(guān)于簡單了解java垃圾回收器的種類的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://www.importnew.com/13827.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜桃网站在线 | 最新视频一区二区 | 欧美城网站地址 | 日本欧美一区二区三区在线播 | 黄色美女免费 | 日本一区免费看 | 大西瓜永久免费av在线 | 国产精品午夜未成人免费观看 | 欧美一级精品片在线看 | 热99精品视频 | 逼特逼视频在线观看 | 91性高湖久久久久久久久网站 | 激情小视频在线观看 | 久久精精品 | hd极品free性xxx护士人 | 深夜激情视频 | 精品国产看高清国产毛片 | 免费久久久 | 午夜天堂在线视频 | 法国性xxx精品hd | 毛片免费在线视频 | 91精品欧美一区二区三区 | 亚洲极色| 欧洲成人综合网 | 成年人免费视频播放 | 最新av在线免费观看 | 免费看毛片网站 | 美女毛片在线观看 | 欧美视频一区二区三区在线观看 | 国产免费让你躁在线视频 | 国产精品一二三区 | 日韩av电影在线免费观看 | 中国av免费在线观看 | 久久国产精品免费视频 | 精品视频 久久久 | 长泽雅美av | 欧美日韩成人一区二区 | 亚洲黑人在线观看 | 国产又粗又爽又深的免费视频 | 国产精选久久 | 国产又粗又爽又深的免费视频 |