久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - jvm 年輕代 如何回收 survivor 對象

瀏覽:120日期:2024-01-19 11:50:11

問題描述

1.jvm年輕代內(nèi)存回收 Eden:survivor=8:1

2.采用復(fù)制算法 Eden區(qū)滿后標(biāo)記后將存活對象房子survivor0里 如下圖:

java - jvm 年輕代 如何回收 survivor 對象

下一次Eden 滿了 會將對象放到之前清空的 survivor1的區(qū)域里

問:

1.survivor的對象如何被清理 同樣是標(biāo)記-清除/整理算法嘛?

2.對象從年輕代到老年代是經(jīng)過每次gc時候 還是動態(tài)的進入,當(dāng)達(dá)到某一條件晉升?什么條件

問題解答

回答1:

lz你好,之前看到你在我的文章淺析JVM之內(nèi)存管理下評論了,同時也看到了你的問題。我的文章里面都有提到:

survivor區(qū)屬于年輕代,用的是復(fù)制收集算法

經(jīng)過數(shù)次(默認(rèn)是15次)在兩個Survivor區(qū)域移動后還存活的對象最后會被移動到老年代

特別大的對象直接進入老年代

回答2:

推薦看看《深入理解java虛擬機》。

1.新生代的GC算法幾乎都是復(fù)制算法,也就是說,survivor也是被復(fù)制到老年代中去的。2.對象從新生代到老年代,有幾種情況

2.1有一個年齡參數(shù)MaxTenuringThreshold用來判斷,每次對象熬過一次GC,年齡加1,當(dāng)?shù)竭_(dá)設(shè)定的閾值時,可以進入老年代。2.2比較大的對象(需要大量連續(xù)的內(nèi)存空間),同樣,虛擬機也提供了一個參數(shù)PretenureSizeThreshold,可以設(shè)置這個值,當(dāng)對象大于設(shè)置值可以直接進入老年代。2.3如果Survivor空間中相同年齡的對象大小總和大于Survivor空間的一般,則年齡大于或等于該年齡的對象就可以進入老年代。這里是屬于動態(tài)判定,適應(yīng)那些內(nèi)存較小的情況

還有一些其他情況,可以看看書

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 静乐县| 庆城县| 方山县| 溧水县| 古交市| 延吉市| 镇江市| 湄潭县| 原平市| 府谷县| 滕州市| 瑞安市| 沙湾县| 浦县| 古丈县| 故城县| 泌阳县| 乳源| 抚宁县| 团风县| 韩城市| 云和县| 芦山县| 吉安县| 区。| 马边| 酉阳| 南汇区| 宿松县| 田林县| 秀山| 玉田县| 神木县| 志丹县| 化德县| 南丰县| 措美县| 兰溪市| 汤原县| 桦川县| 宁城县|