Oracle HotSpot虛擬機器的JVM棧和方法區實現

來源:互聯網
上載者:User

標籤:style   http   io   ar   os   使用   sp   java   on   

Java Heap和Method Area是JVM中記憶體佔用最大的地區,也是監控和調優的重點。
使用jvisualvm工具截取,Perm是永久代(Permanent Generation)、Old是年老代(Old Generation)、Eden Space 和S0+S1是年輕代(Young Generation,日誌等處稱之為New的也指這裡), S0(也稱From)和S1(也稱To)合稱Survivor Space。

其中Permanent Generation對應Java虛擬機器規範中的Method Area,Old Generation和Young Generation對應JVM Heap。

對象主要在年輕代的Eden區分配(不討論JIT編譯),其實堆也不完全是線程共用,如果啟用了本地線程分配緩衝,優先線上程的TLAB上分配,這個TLAB每個線程自己獨佔。少數情況下,也可能會直接分配在年老代。總體上遵守幾個規則:

1、對象優先在Eden區分配,Eden區空間不足時發起Minor GC,將Eden區和正在使用的一個Survivor區對象轉移到另一個Survivor區,如目標Survivor區空間不足,轉移到年老代。

2、需要大量連續記憶體空間的Java大對象,如果超過設定的閾值,將直接在年老代分配。

3、對象每被移動到Survivor區一次年齡加1,超過設定的閾值仍然存活,將被移動到年老代。

4、Minor GC前,虛擬機器會判斷年老代是否有連續空間容納新生代要轉移的對象,如果沒有,根據參數設定可能引發年老代Major GC。

Minor GC,指新生代GC,發生頻率高速度快。

Major GC,也稱Full GC,指年老代GC,發生頻率低速度慢,一般比Minor GC慢10倍以上。




Oracle HotSpot虛擬機器的JVM棧和方法區實現

聯繫我們

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