国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

1.jvm年輕代內存回收 Eden:survivor=8:1

2.采用復制算法 Eden區滿后標記后將存活對象房子survivor0里 如下圖:

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

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

問:

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

2.對象從年輕代到老年代是經過每次gc時候 還是動態的進入,當達到某一條件晉升?什么條件

問題解答

回答1:

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

survivor區屬于年輕代,用的是復制收集算法

經過數次(默認是15次)在兩個Survivor區域移動后還存活的對象最后會被移動到老年代

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

回答2:

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

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

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

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

標簽: java
相關文章:
主站蜘蛛池模板: 贡山| 神农架林区| 平顺县| 晋宁县| 万年县| 靖边县| 明水县| 山东省| 稷山县| 临猗县| 龙游县| 玉屏| 宝兴县| 永善县| 天长市| 霍山县| 马尔康县| 惠安县| 井研县| 玉田县| 揭阳市| 海伦市| 玉龙| 罗甸县| 大关县| 吴旗县| 荥阳市| 东宁县| 杨浦区| 淮安市| 精河县| 米脂县| 汤阴县| 岫岩| 安丘市| 汨罗市| 石河子市| 永川市| 安多县| 德化县| 巴林左旗|