成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Java】實戰(zhàn)Java虛擬機之三“G1的新生代GC”

BearyChat / 540人閱讀

摘要:今天開始實戰(zhàn)虛擬機之三的新生代。一旦區(qū)被占滿,新生代就會啟動。新生代收集前后的堆數(shù)據(jù)如圖所示,其中表示區(qū),表示區(qū),表示老年代。當然我們最為關(guān)心的依然是的停頓時間以及回收情況。節(jié)選自實戰(zhàn)虛擬機一書交流群

今天開始實戰(zhàn)Java虛擬機之三:“G1的新生代GC”。
總計有5個系列
實戰(zhàn)Java虛擬機之一“堆溢出處理”
實戰(zhàn)Java虛擬機之二“虛擬機的工作模式”
實戰(zhàn)Java虛擬機之三“G1的新生代GC”
實戰(zhàn)Java虛擬機之四“禁用System.gc()”
實戰(zhàn)Java虛擬機之五“開啟JIT編譯”

新生代GC的主要工作是回收eden區(qū)和survivor區(qū)。一旦eden區(qū)被占滿,新生代GC就會啟動。新生代GC收集前后的堆數(shù)據(jù)如圖5.6所示,其中E表示eden區(qū),S表示survivor區(qū),O表示老年代??梢钥吹?,新生代GC只處理eden和survivor區(qū),回收后,所有的eden區(qū)都應(yīng)該被清空,而survivor區(qū)會被收集一部分數(shù)據(jù),但是應(yīng)該至少仍然存在一個survivor區(qū),類比其他的新生代收集器,這一點似乎并沒有太大變化。另一個重要的變化是老年代的區(qū)域增多,因為部分survivor區(qū)或者eden區(qū)的對象可能會晉升到老年代。

圖5.6 G1的新生代GC

新生代GC發(fā)生后,如果打開了PrintGCDetails選項,就可以得到類似以下的GC日志(這里只給出了部分日志,完全的日志及其分析請看《實戰(zhàn)Java虛擬機》一書第5.4.6節(jié)):

0.336: [GC pause (young), 0.0063051 secs]
….
   [Eden: 235.0M(235.0M)->0.0B(229.0M) Survivors: 5120.0K->11.0M Heap: 239.2M(400.0M)->10.5M(400.0M)]
 [Times: user=0.06 sys=0.00, real=0.01 secs]

和其他回收器的日志相比,G1的日志內(nèi)容非常豐富。當然我們最為關(guān)心的依然是GC的停頓時間以及回收情況。從日志中可以看到,eden區(qū)原本占用235M空間,回收后被清空,survivor區(qū)從5M增長到了11M,這是因為部分對象從eden區(qū)復(fù)制到survivor區(qū),整個堆合計為400M,從回收前的239M下降到10.5M。

節(jié)選自

《實戰(zhàn)java虛擬機》一書Q交流群:397196583

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64347.html

相關(guān)文章

  • 實戰(zhàn)Java虛擬機之二“虛擬工作模式”

    摘要:今天開始實戰(zhàn)虛擬機之二虛擬機的工作模式??傆嬘袀€系列實戰(zhàn)虛擬機之一堆溢出處理實戰(zhàn)虛擬機之二虛擬機的工作模式實戰(zhàn)虛擬機之三的新生代實戰(zhàn)虛擬機之四禁用實戰(zhàn)虛擬機之五開啟編譯目前的虛擬機支持和兩種運行模式。 今天開始實戰(zhàn)Java虛擬機之二:虛擬機的工作模式。 總計有5個系列實戰(zhàn)Java虛擬機之一堆溢出處理實戰(zhàn)Java虛擬機之二虛擬機的工作模式實戰(zhàn)Java虛擬機之三G1的新生代GC實戰(zhàn)Jav...

    focusj 評論0 收藏0
  • 實戰(zhàn)Java虛擬機之一“堆溢出處理”

    摘要:如下文字顯示了典型的堆內(nèi)存溢出一旦發(fā)生這類問題,系統(tǒng)就會被迫退出。有關(guān)等工具的使用,可以參閱實戰(zhàn)虛擬機故障診斷與性能優(yōu)化第章。除了在發(fā)生時可以導出堆信息外,虛擬機還允許在發(fā)生錯誤時執(zhí)行一個腳本文件。 從今天開始,我會發(fā)5個關(guān)于java虛擬機的小系列:實戰(zhàn)Java虛擬機之一堆溢出處理 [實戰(zhàn)Java虛擬機之二虛擬機的工作模式][2] [實戰(zhàn)Java虛擬機之三G1的新生代GC][3] 實戰(zhàn)...

    Arno 評論0 收藏0
  • 深入理解虛擬機之虛擬機性能監(jiān)控和故障處理工具

    摘要:監(jiān)控和故障處理工具顯示指定系統(tǒng)內(nèi)所有的虛擬機進程用于收集虛擬機各方面的運行數(shù)據(jù)。的常用功能選項測試上面輸出了我正在運行程序的包名下的類名虛擬機統(tǒng)計信息監(jiān)視工具使用于監(jiān)視虛擬機各種運行狀態(tài)信息的命令行工具。 《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版》讀書筆記與常見面試題總結(jié) 本節(jié)常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): JVM調(diào)優(yōu)的常見命令行工具有哪些?...

    jas0n 評論0 收藏0
  • 深入理解虛擬機之Java內(nèi)存區(qū)域

    摘要:運行時數(shù)據(jù)區(qū)域虛擬機在執(zhí)行程序的過程中會把它管理的內(nèi)存劃分成若干個不同的數(shù)據(jù)區(qū)域。堆虛擬機所管理的內(nèi)存中最大的一塊,堆是所有線程共享的一塊內(nèi)存區(qū)域,在虛擬機啟動時創(chuàng)建。 《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版》讀書筆記 1 概述 對于Java程序員來說,在虛擬機自動內(nèi)存管理機制下,不再需要像C/C++程序開發(fā)程序員這樣為內(nèi)一個new 操作去寫對應(yīng)的delete/...

    dance 評論0 收藏0
  • 深入理解虛擬機之Java內(nèi)存區(qū)域

    摘要:深入理解虛擬機高級特性與最佳實踐第二版讀書筆記與常見面試題總結(jié)本節(jié)常見面試題介紹下內(nèi)存區(qū)域運行時數(shù)據(jù)區(qū)。運行時數(shù)據(jù)區(qū)域虛擬機在執(zhí)行程序的過程中會把它管理的內(nèi)存劃分成若干個不同的數(shù)據(jù)區(qū)域。 《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版》讀書筆記與常見面試題總結(jié) 本節(jié)常見面試題: 介紹下Java內(nèi)存區(qū)域(運行時數(shù)據(jù)區(qū))。 對象的訪問定位的兩種方式。 1 概述 對于Java...

    lavnFan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<