真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的綏濱網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

串行垃圾回收器(Serial Garbage Collector)
并行垃圾回收器(Parallel Garbage Collector)
并發(fā)標記掃描垃圾回收器(CMS Garbage Collector)
G1垃圾回收器(G1 Garbage Collector)

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

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

1、串行垃圾回收器

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

通過JVM參數(shù)-XX:+UseSerialGC可以使用串行垃圾回收器。

2、并行垃圾回收器

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

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

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

當標記的引用對象在tenured區(qū)域;

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

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

通過JVM參數(shù)XX:+USeParNewGC打開并發(fā)標記掃描垃圾回收器。

4、G1垃圾回收器

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

通過JVM參數(shù)–XX:+UseG1GC使用G1垃圾回收器

Java8的新特性

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

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

垃圾回收的JVM配置

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

運行的垃圾回收器類型

配置描述
-XX:+UseSerialGC串行垃圾回收器
-XX:+UseParallelGC并行垃圾回收器
-XX:+UseConcMarkSweepGC并發(fā)標記掃描垃圾回收器
-XX:ParallelCMSThreads=并發(fā)標記掃描垃圾回收器 =為使用的線程數(shù)量
-XX:+UseG1GCG1垃圾回收器

GC的優(yōu)化配置

配置描述
-Xms初始化堆內(nèi)存大小
-Xmx堆內(nèi)存最大值
-Xmn新生代大小
-XX:PermSize初始化永久代大小
-XX:MaxPermSize永久代最大容量

使用JVM GC參數(shù)的例子

java -Xmx12m -Xms3m -Xmn1m -XX:PermSize=20m -XX:MaxPermSize=20m -XX:+UseSerialGC -jar java-application.jar

總結(jié)

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


分享文章:簡單了解Java垃圾回收器的種類
網(wǎng)頁地址:http://weahome.cn/article/pcoihd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部