JVM GC算法
復制算法
1,每一次GC都會將伊甸(Eden)活的對象移到幸存區中:一旦Eden區被GC后 就會是空
只要有內容就是from區
誰空誰是to區
內存會從 伊甸->幸存區to->幸存from(這個時候to和from交換
區域)
每一次GC(垃圾回收)以后伊甸園空幸存區to
都是空的
好處:沒有內存碎片
壞處:浪費一半空間(幸存to區)
復制算法最佳使用場景,對象存活度較低的時候
標記清除算法
優點:不需要額外的內存空間
缺點:兩次掃描浪費時間,會產生內存碎片
標記清除壓縮算法
內存效率:復制算法>標記清除算法>標記壓縮算法(時間復雜度問題)
內存整齊度:復制算法=標記壓縮算法>標記清除算法
內存利用率:標記壓縮算法=標記清除算法>復制算法
年輕代:
-
存活率低
-
復制算法
老年代: -
區域大:存活錄
-
標記清除(內存碎片不是太多)+標記壓縮混合實現