日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java虚拟机内存分配策略

發(fā)布時(shí)間:2024/2/28 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java虚拟机内存分配策略 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.JVM內(nèi)存分配分區(qū)

Java的內(nèi)存簡(jiǎn)單分為堆內(nèi)存和非堆內(nèi)存
其中堆內(nèi)存又可以分為新生代和老年代
新生代分為1個(gè)Eden區(qū)和2個(gè)Survivor區(qū),如下圖:

2.JVM垃圾回收種類

分為2種,MinorGC和FullGC.
MinorGC針對(duì)新生代的內(nèi)存回收,時(shí)間較短,經(jīng)常發(fā)生。
FullGC針對(duì)老年代的回收,通常伴隨MinorGC,耗費(fèi)時(shí)間較久,較少發(fā)生。

3.JVM內(nèi)存分配策略

(1)先在Eden區(qū)分配,如果不夠分配的話,發(fā)生MinorGC。
(2)進(jìn)行MinorGC時(shí),會(huì)把Eden中有在使用的對(duì)象放到其中一個(gè)Survivor中。如果Survivor中放不下,則會(huì)進(jìn)入老年代。
(3)每次進(jìn)行MinorGC時(shí),在Survivor中存活的對(duì)象會(huì)增加1歲,默認(rèn)超過(guò)15歲的對(duì)象(MaxTenuringThreshold),會(huì)進(jìn)入老年代。
(4)JVM的參數(shù)有一個(gè)叫PretenureSizeThreshold,大小超過(guò)這個(gè)值的對(duì)象會(huì)直接進(jìn)入老年代。

4.垃圾回收器種類

Serial/Serial Old

(1)適合單個(gè)CPU
(2)Serial采用復(fù)制算法,適合新生代
(3)Serial Old采用標(biāo)記-整理算法,適合老年代

ParNew

(1)多線程,并行

Parallel Scavenge

(1)適合新生代,并行
(2)適合后臺(tái)運(yùn)算的任務(wù),追求的是吞吐量,支持參數(shù)自適應(yīng)

Parallel Old

(1)適合老年代,與Parallel Scavenge搭配使用

CMS(Consurrent Mark Sweep)

(1)追求短停頓,采用標(biāo)記-清除算法
(2)無(wú)法處理浮動(dòng)垃圾
(3)要求CPU較多

G1

(1)并行+并發(fā)
(2)分代采用不同算法進(jìn)行收集
(3)標(biāo)記整理+復(fù)制算法
(4)可預(yù)測(cè)停頓時(shí)間

總結(jié)

以上是生活随笔為你收集整理的Java虚拟机内存分配策略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。