JAVA GC 簡單總結

來源:互聯網
上載者:User

標籤:new   bsp   highlight   collect   bag   指定   cti   對象   多次   

GC分代

GC的英文全拼是Garbage Collection,意思是垃圾收集。

Java 將堆記憶體分為三代來管理: - 年輕代 (Young Generation) - 年老代 (Old Generation) - 永久代 (Perm Generation)

年輕代:又分為EdenFromTo,其中FromTo又統稱為Survivor Spaces(倖存區)。年輕代大小可以由-Xmn來控制,也可以用-XX:SurvivorRatio來控制EdenSurvivor的比例,使用–XX:NewRatio來指定新生代和年老代的大小比例。

年老代:用來存放多次記憶體回收依然存活的對象。

永久代:來存放方法區。可通過-XX:PermSize-XX:MaxPermSize來指定最小值和最大值。

正常情況下,一個對象從建立到銷毀,應該是從Eden,然後到Survivor Spaces(倖存區),再到Old Generation(年老代),最後在某次GC下消失。也可能一個對象直接在Eden裡死掉,也可能一直在Old Generation(年老代)存活。

GC種類

Java GC分為兩類:

  • Minar GC
  • FULL GC
  • Major GC

Minar GC:從年輕代空間(包括 Eden 和 Survivor 地區)回收記憶體被稱為 Minor GC。

Major GC:是清理老年代。

FULL GC:是清理整個堆空間—包括年輕代和老年代。

GC的時候,會暫停全世界(stop-the-world),意思是停止所有的應用線程,所以要避免不必要的GC已提高效能。

GC日誌

-XX:+PrintGCDetails列印日誌詳情。

-XX:+PrintGCTimeStamps列印時間戳記。

-Xloggc輸出GC日誌到檔案。

JAVA GC 簡單總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.