最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解讀JDK1.8?默認使用什么垃圾收集器

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

JDK1.8 默認使用什么垃圾收集器

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

-XX:InitialHeapSize=132500864 //初始堆大小
-XX:MaxHeapSize=2120013824 ? ?//最大堆大小
-XX:+PrintCommandLineFlags ? ?//程序運行前打印出用戶手動設(shè)置或者JVM自動設(shè)置的XX選項,因為我們執(zhí)行時間加上了這個選項,所以這里會打印出來
-XX:+UseCompressedClassPointers // 默認開啟類指針壓縮
-XX:+UseCompressedOops ?// 默認開啟對象指針壓縮
-XX:-UseLargePagesIndividualAllocation
-XX:+UseParallelGC // 默認使用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虛擬機,Server模式,混合編譯

或者使用java -XX:+PrintFlagsFinal 查看亦可??梢钥吹経seParellelGC和UseParellelOldGC兩個選項都是打開的,即JDK1.8中默認使用的是Parallel Scavenge和Parallel Old收集器組合。

我可也可以寫一個堆溢出的小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默認垃圾回收器的組合

問題是什么?

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

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

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

  • ps + po
  • ps + so

究竟哪個是正確的呢?

答案是:ps + po

驗證

我這里有幾個java進程

[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

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

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

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

我們也可以用下面的指令來查看,現(xiàn)在想想這個應(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這個就是po的垃圾回收器了,所以默認情況下jdk1.8的默認垃圾回收器的組合為:ps+po!

總結(jié)

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

相關(guān)文章

  • Java多線程實現(xiàn)之Executor詳解

    Java多線程實現(xiàn)之Executor詳解

    這篇文章主要介紹了Java多線程實現(xiàn)之Executor詳解,Executor 給他一個 Runnable,他就能自動很安全的幫你把這個線程執(zhí)行完畢
    Executor 通過創(chuàng)建線程池的方式來管理線程,需要的朋友可以參考下
    2023-08-08
  • Hibernate初體驗及簡單錯誤排除代碼詳解

    Hibernate初體驗及簡單錯誤排除代碼詳解

    這篇文章主要介紹了Hibernate初體驗及簡單錯誤排除代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • springboot代碼,注解配置獲取yml,properties文件的map即鍵值對

    springboot代碼,注解配置獲取yml,properties文件的map即鍵值對

    這篇文章主要介紹了springboot代碼,注解配置獲取yml,properties文件的map即鍵值對,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java操作excel的方法

    java操作excel的方法

    這篇文章主要介紹了java操作excel的方法,實例分析了java針對excel文件的讀寫、打開、保存等操作技巧,需要的朋友可以參考下
    2015-07-07
  • SpringBoot基礎(chǔ)教程之集成郵件服務(wù)

    SpringBoot基礎(chǔ)教程之集成郵件服務(wù)

    這篇文章主要給大家介紹了關(guān)于SpringBoot基礎(chǔ)教程之集成郵件服務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者使用SpringBoot具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧
    2020-07-07
  • Java構(gòu)建高效結(jié)果緩存方法示例

    Java構(gòu)建高效結(jié)果緩存方法示例

    這篇文章主要介紹了Java構(gòu)建高效結(jié)果緩存方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-04-04
  • java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法

    java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法

    本篇文章主要介紹了java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Mybatis批量插入更新xml方式和注解方式的方法實例

    Mybatis批量插入更新xml方式和注解方式的方法實例

    這篇文章主要給大家介紹了關(guān)于Mybatis批量插入更新xml方式和注解方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用Mybatis具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧
    2019-12-12
  • Java排序方法sort用法詳解

    Java排序方法sort用法詳解

    這篇文章主要為大家詳細介紹了Java排序方法sort用法,對數(shù)組、集合的排序方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java使用正則表達式判斷獨立字符的存在(代碼示例)

    Java使用正則表達式判斷獨立字符的存在(代碼示例)

    通過使用正則表達式,我們可以更加靈活地判斷字符串中是否包含特定的字符,并且可以控制匹配的條件,如獨立的字符,這為我們處理字符串提供了更多的選擇和功能,這篇文章主要介紹了Java使用正則表達式判斷獨立字符的存在,需要的朋友可以參考下
    2023-10-10

最新評論

霍山县| 东平县| 津南区| 皮山县| 鄂尔多斯市| 蓬莱市| 南澳县| 灌云县| 师宗县| 荣成市| 平邑县| 昭平县| 高尔夫| 岳阳县| 永登县| 曲周县| 仙居县| 乐山市| 威宁| 响水县| 汶上县| 静宁县| 津南区| 防城港市| 通化县| 北票市| 乌审旗| 临漳县| 襄樊市| 屏南县| 绥芬河市| 定安县| 巴林左旗| 龙江县| 海淀区| 得荣县| 贵溪市| 天等县| 长沙市| 浑源县| 全州县|