GC的简单介绍

xiaoxiao2021-02-28  94

什么时候执行GC

当新生代满了的时候触发minor GC当上升到老年代的对象大于剩余空间的时候执行Full GC。当GC与非GC的耗时超过了GCTimeRate的时候会促发OOM程序员不能控制具体的GC时间,只能调用System.gc()提示系统进行GC处理,但是JVM不一定执行。

回收什么对象

在引用技术算法里面,当对象超出了作用域或者对象的引用技术为0时,该对象为垃圾对象。在GC Root算法里面,从GC root开始向下遍历,仍无法搜索到的对象,而且经过依次标记清理依然无法恢复的对象。

做些什么

运行默认的finalize函数,对对象做最后的标记处理。删除垃圾对象,回收内存空间。在新生代里面,我们使用复制清理算法;在老年代里面,我们使用标记清理算法。

如何延迟对象回收或保留对象

增大survivor space、老年代空间。为引用为0的对象增加老年代对他的引用。增大GcTimeRatio,低促发GC的比率。
转载请注明原文地址: https://www.6miu.com/read-60055.html

最新回复(0)