欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀JDK1.8?默認(rèn)使用什么垃圾收集器

 更新時(shí)間:2023年05月29日 08:49:35   作者:FRESH_9527  
這篇文章主要介紹了解讀JDK1.8?默認(rèn)使用什么垃圾收集器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JDK1.8 默認(rèn)使用什么垃圾收集器

使用java -XX:+PrintCommandLineFlags -version查看一下

-XX:InitialHeapSize=132500864 //初始堆大小
-XX:MaxHeapSize=2120013824 ? ?//最大堆大小
-XX:+PrintCommandLineFlags ? ?//程序運(yùn)行前打印出用戶手動(dòng)設(shè)置或者JVM自動(dòng)設(shè)置的XX選項(xiàng),因?yàn)槲覀儓?zhí)行時(shí)間加上了這個(gè)選項(xiàng),所以這里會(huì)打印出來
-XX:+UseCompressedClassPointers // 默認(rèn)開啟類指針壓縮
-XX:+UseCompressedOops ?// 默認(rèn)開啟對(duì)象指針壓縮
-XX:-UseLargePagesIndividualAllocation
-XX:+UseParallelGC // 默認(rèn)使用Parallel垃圾收集器
java version "1.8.0_221" // jdk版本
Java(TM) SE Runtime Environment (build 1.8.0_221-b11) // jre
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode) // Hotspot虛擬機(jī),Server模式,混合編譯

或者使用java -XX:+PrintFlagsFinal 查看亦可。可以看到UseParellelGC和UseParellelOldGC兩個(gè)選項(xiàng)都是打開的,即JDK1.8中默認(rèn)使用的是Parallel Scavenge和Parallel Old收集器組合。

我可也可以寫一個(gè)堆溢出的小demo打印GC信息:

 PSYoungGen      total 6144K, used 3224K [0x00000000ff980000, 0x0000000100000000, 0x0000000100000000)
                            eden space 5632K, 57% used [0x00000000ff980000,0x00000000ffca6230,0x00000000fff00000)
                            from space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)
                            to   space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)
 ParOldGen       total 13824K, used 13440K [0x00000000fec00000, 0x00000000ff980000, 0x00000000ff980000)
                          object space 13824K, 97% used [0x00000000fec00000,0x00000000ff920338,0x00000000ff980000)
 Metaspace       used 2681K, capacity 4486K, committed 4864K, reserved 1056768K
                         class space    used 286K, capacity 386K, committed 512K, reserved 1048576K

PSYoungGen 表示的是由Parallel Scavenge垃圾收集器管理的新生代,ParOldGen表示由Parallel Old管理的老年代。

jdk1.8默認(rèn)垃圾回收器的組合

問題是什么?

線上運(yùn)行的項(xiàng)目,在不指定jvm運(yùn)行參數(shù)的情況下,默認(rèn)的垃圾回收器的組合是什么?

針對(duì)網(wǎng)上一大堆的介紹,個(gè)人覺得可能是我自己沒有理解吧,總感覺有一些問題,或者欠缺點(diǎn)什么?

網(wǎng)上的言論大體上有一下兩種:

  • ps + po
  • ps + so

究竟哪個(gè)是正確的呢?

答案是:ps + po

驗(yàn)證

我這里有幾個(gè)java進(jìn)程

[root@Game-TEST ~ 00:47:06]# jps
14576 CrossFamilyTopServerStart
14352 Start
1797 jar
[root@Game-TEST ~ 00:47:25]# jinfo -flags 14352
Attaching to process ID 14352, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=264241152 -XX:MaxHeapSize=4217372672 -XX:MaxNewSize=1405616128 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88080384 -XX:OldSize=176160768 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC

可以看到這里默認(rèn)的jvm運(yùn)行參數(shù)為:-XX:+UseParallelGC,查看周志明老師深入理解java虛擬機(jī)中關(guān)于垃圾回收器的介紹來看,這個(gè)參數(shù)對(duì)應(yīng)的垃圾回收器的組合應(yīng)該為:ps + so(紅色框選中的部分)

乍一看!這是為什么呢,不是說默認(rèn)的是ps + po么?

這就涉及到j(luò)dk版本的問題了,可以看看參考資料里面的描述:大致意思就是在jdk1.8以后-XX:+UseParallelGC是默認(rèn)開啟的,所以垃圾回收器的組合就是ps+po,但是為什么命令行的顯示來看這個(gè)參數(shù)沒有被指定呢?這個(gè)。。。。。不懂,留著后面再看吧!

我們也可以用下面的指令來查看,現(xiàn)在想想這個(gè)應(yīng)該是最直接的!

[root@Game-TEST ~ 00:55:50]# java -XX:+PrintGCDetails -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
Heap
 PSYoungGen      total 75264K, used 2580K [0x000000076c380000, 0x0000000771780000, 0x00000007c0000000)
  eden space 64512K, 4% used [0x000000076c380000,0x000000076c605368,0x0000000770280000)
  from space 10752K, 0% used [0x0000000770d00000,0x0000000770d00000,0x0000000771780000)
  to   space 10752K, 0% used [0x0000000770280000,0x0000000770280000,0x0000000770d00000)
 ParOldGen       total 172032K, used 0K [0x00000006c4a00000, 0x00000006cf200000, 0x000000076c380000)
  object space 172032K, 0% used [0x00000006c4a00000,0x00000006c4a00000,0x00000006cf200000)
 Metaspace       used 2216K, capacity 4480K, committed 4480K, reserved 1056768K
  class space    used 243K, capacity 384K, committed 384K, reserved 1048576K

出現(xiàn)了ParOldGen這個(gè)就是po的垃圾回收器了,所以默認(rèn)情況下jdk1.8的默認(rèn)垃圾回收器的組合為:ps+po!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Kotlin基礎(chǔ)教程之Run,標(biāo)簽Label,函數(shù)Function-Type

    Kotlin基礎(chǔ)教程之Run,標(biāo)簽Label,函數(shù)Function-Type

    這篇文章主要介紹了Kotlin基礎(chǔ)教程之Run,標(biāo)簽Label,函數(shù)Function-Type的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 在SpringBoot中如何利用Redis實(shí)現(xiàn)互斥鎖

    在SpringBoot中如何利用Redis實(shí)現(xiàn)互斥鎖

    當(dāng)我們利用Redis存儲(chǔ)熱點(diǎn)數(shù)據(jù)時(shí),突然就過期失效或者被刪除了,導(dǎo)致大量請(qǐng)求同時(shí)訪問數(shù)據(jù)庫,增加了數(shù)據(jù)庫的負(fù)載,為減輕數(shù)據(jù)庫的負(fù)載我們利用互斥鎖,本文重點(diǎn)介紹在SpringBoot中如何利用Redis實(shí)現(xiàn)互斥鎖,感興趣的朋友一起看看吧
    2023-09-09
  • Java WeakHashMap案例詳解

    Java WeakHashMap案例詳解

    這篇文章主要介紹了Java WeakHashMap案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java微信企業(yè)號(hào)開發(fā)之通訊錄

    java微信企業(yè)號(hào)開發(fā)之通訊錄

    這篇文章主要為大家詳細(xì)介紹了java微信企業(yè)號(hào)開發(fā)之通訊錄的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • java9區(qū)分opens與exports

    java9區(qū)分opens與exports

    本篇文章主要給大家講述了java9中opens與exports的區(qū)別以及用法的不同之處,一起學(xué)習(xí)下吧。
    2018-02-02
  • SpringBoot使用redis實(shí)現(xiàn)session共享功能

    SpringBoot使用redis實(shí)現(xiàn)session共享功能

    這篇文章主要介紹了pringboot項(xiàng)目使用redis實(shí)現(xiàn)session共享,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Java獲得指定區(qū)間數(shù)的方法

    Java獲得指定區(qū)間數(shù)的方法

    這篇文章主要介紹了Java獲得指定區(qū)間數(shù)的方法,涉及java數(shù)值運(yùn)算的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Java的后臺(tái)文件夾下文件的遍歷完整代碼

    Java的后臺(tái)文件夾下文件的遍歷完整代碼

    這篇文章主要介紹了Java的后臺(tái)文件夾下文件的遍歷完整代碼,首先分享了java中遍歷一個(gè)文件夾里邊的所有文件,然后介紹了用Java遍歷一個(gè)文件夾并獲取它里面的所有內(nèi)容詳細(xì)代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • java中封裝JDBC工具類的實(shí)例分析

    java中封裝JDBC工具類的實(shí)例分析

    在本篇內(nèi)容里小編給各位分享了一篇關(guān)于java中封裝JDBC工具類的實(shí)例分析,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • java生成申請(qǐng)單序列號(hào)的實(shí)現(xiàn)方法

    java生成申請(qǐng)單序列號(hào)的實(shí)現(xiàn)方法

    申請(qǐng)單序列號(hào)一般要求根據(jù)一定的規(guī)則生成后幾位連續(xù)的字符串,下面是我項(xiàng)目中使用的生成序列號(hào)的代碼,其中用到了鎖機(jī)制,有需要的朋友可以參考一下
    2014-01-01

最新評(píng)論