官术网_书友最值得收藏!

1.7 分代收集算法和分區收集算法

1.7.1 分代收集算法

JVM根據對象存活周期的不同將內存劃分為新生代、老年代和永久代,并根據各年代的特點分別采用不同的GC算法。

1.新生代與復制算法

新生代主要存儲短生命周期的對象,因此在垃圾回收的標記階段會標記大量已死亡的對象及少量存活的對象,因此只需選用復制算法將少量存活的對象復制到內存的另一端并清理原區域的內存即可。

2.老年代與標記整理算法

老年代主要存放長生命周期的對象和大對象,可回收的對象一般較少,因此JVM采用標記整理算法進行垃圾回收,直接釋放死亡狀態的對象所占用的內存空間即可。

1.7.2 分區收集算法

分區算法將整個堆空間劃分為連續的大小不同的小區域,對每個小區域都單獨進行內存使用和垃圾回收,這樣做的好處是可以根據每個小區域內存的大小靈活使用和釋放內存。

分區收集算法可以根據系統可接受的停頓時間,每次都快速回收若干個小區域的內存,以縮短垃圾回收時系統停頓的時間,最后以多次并行累加的方式逐步完成整個內存區域的垃圾回收。如果垃圾回收機制一次回收整個堆內存,則需要更長的系統停頓時間,長時間的系統停頓將影響系統運行的穩定性。

主站蜘蛛池模板: 牙克石市| 宁德市| 绥宁县| 渝中区| 吉林省| 红河县| 喀喇沁旗| 淅川县| 茌平县| 明光市| 喀喇沁旗| 永城市| 北海市| 红河县| 军事| 湟源县| 诸暨市| 黄浦区| 哈密市| 宁陵县| 安龙县| 桃江县| 原阳县| 松滋市| 长海县| 本溪| 天柱县| 海宁市| 南投市| 建湖县| 南丰县| 霍林郭勒市| 普兰店市| 阳春市| 简阳市| 新宾| 志丹县| 郴州市| 来凤县| 金溪县| 博客|