Java記憶體管理3-讀書筆記

來源:互聯網
上載者:User

標籤:分配   檔案   多線程   reads   core   thread   參數   client   公式   

在介紹三種垃圾收集演算法之前,先說下三種GC的區別:

MinorGC:年輕代空間回收

MajorGC:老年代空間回收

FullGC:整個堆空間回收

垃圾收集演算法分類

1.Serial Collector

  JVM在client模式下的預設GC方式.通過JVM配置參數:-XX:+UseSerialGC指定GC使用該收集演算法.我們建立的所有對象都在Eden區建立,如果Eden區空間不足就會觸發MinorGC.不過每次MinorGC之前會查看之前每次晉陞對象大小是否超過了Old區的剩餘空間,如果大於則觸發一次FullGC,如果小於,則要看HandlePromotionFailure參數(-XX:-HandlePromotionFailure)的值,如果為true,僅觸發MinorGC,否則再觸發一次FullGC.

2.Parallel Collector

  Parallel GC根據Minor GC和Full GC的不同,分為三種.

  1)ParNewGC

  通過-XX:UseParNewGC參數指定,它的對象分配和回收策略與Serial Collector類似,只是回收的線程是多線程並行回收.

  2)ParallelGC

  在Server下預設的GC方式,通過-XX:UseParallelGC參數來強制指定,並行回收的線程數可以通過-XX:ParallelGCThreads來制定,這個值有個計算公式,如果CPU和核心數小於8,線程數和核心數一樣,如果大於8,值為 3+(cpu core*5)/8

  3)ParallelOldGC

  通過-XX:UseParallelOldGC參數來強制指定,與上面的類似,並行回收的線程數可以通過-XX:ParallelGCThreads來制定,這個值有個計算公式,如果CPU和核心數小於8,線程數和核心數一樣,如果大於8,值為 3+(cpu core*5)/8

3.CMS Collector

  可以通過-XX:UseConcMarkSweepGC來指定,並發的線程數預設為4(並行GC線程數+3),也可通過ParallelCMSThreads來指定.CMS GC是基於MinorGC和FullGC之間的一種GC,它的觸發規則是檢查Old區或者Perm區的使用率,當達到一定比例時就觸發CMS GC,觸發時會回收Old區的記憶體空間.觸發CMSGC回收的只是Old區和Perm區的垃圾對象,在回收時和之前的MinorGC,FullGC基本沒有關係.

觸發FullGC的兩種情況:

A.Eden分配失敗,觸發MinorGC後分配到To Space,To Space不夠再分配到Old區,Old區不夠則觸發Full GC.

B.當CMS GC進行中向Old區申請記憶體失敗則會直接觸發Full GC.

4.組合使用者三種GC

5.三種GC的優缺點

 6.GC日誌輸出參數

  • -verbose:gc,可以輔助輸出一些詳細的GC資訊.
  • -XX:+PrintGCDetails,輸出GC的詳細資料.
  • -XX:+PrintGCApplicationStoppedTime,輸出GC造成應用程式暫停時間.
  • -XX:+PrintGCDateStamps,GC發生的時間資訊.
  • -XX:+PrintHeapAtGC,在GC前後輸出堆中各個地區的大小.
  • -Xloggc:[file],將GC資訊輸出到單獨的檔案中.

Java記憶體管理3-讀書筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.