垃圾回收与垃圾收集算法
生活随笔
收集整理的這篇文章主要介紹了
垃圾回收与垃圾收集算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
概述
可回收的條件
堆區可回收的條件
方法區可回收的條件
垃圾收集算法
理論支持
追蹤式垃圾收集常見算法
標記-清除算法
標記-復制算法
標記-整理算法
概述
線程共享的內存區需要內存的分配和回收:Java堆和方法區
可回收的條件
堆區可回收的條件
堆中的回收對象是不再存活的實例,Java中判斷對象是否存活,同時滿足以下條件
方法區可回收的條件
方法區中主要回收的內容
? ? ? ? 總結:性價比低,條件苛刻
垃圾收集算法
理論支持
當前商業虛擬機的垃圾收集器大多遵循分代收集理論進行設計,理論建立在以下假說上
追蹤式垃圾收集常見算法
標記-清除算法
最基礎的垃圾收集算法,標記過程即對象是否始于垃圾的判定過程
回收過程
缺點
標記-復制算法
常用于新生代回收,新生代存活的少
回收過程
將可用內存按容量分成大小相等的兩塊,每次只使用一塊,這一塊內存用完后開始垃圾收集
優點:
缺點:
Appel式回收
優化半區復制分代策略,內存這樣劃分:新生代=Eden空間+Survivor空間*2,其中Eden空間和Survivor空間大小比例為8:1(HotSpot中);每次分配內存只使用Eden和一塊Survivor空間,發生垃圾收集時?
????????由此,每次新生代中可以使用的空間是整個新生代的90%,如果存活的對象超過10%,依賴其他內存區域進行分配擔保,實際上大多數就是老年代
標記-整理算法
常用于老年代回收
回收過程
缺點:
優點:
????????和稀泥式,平時使用普通標記-清除,暫時容忍碎片存在,直到內存空間的碎片化程度已經達到影響對象分配時再使用標記-整理算法收集一次
總結
以上是生活随笔為你收集整理的垃圾回收与垃圾收集算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB LSB图像信息隐藏 最低位
- 下一篇: ES学习记录10.2——ES分析器3(标