java学习个人笔记---常见的垃圾回收器及存储结构分析

来源:互联网 发布:影视后期软件 编辑:程序博客网 时间:2024/04/29 14:48

常见的垃圾回收器

(1)串行回收器:

串行回收器使用一个CPU处理,在回收垃圾期间应用程序会产生暂停,具体策略为:Young代采用串行复制算法,Old代采用串行标记压缩算法

存储结构变化分析如下:




Young代内存包含Eden区和Survivor区,Survicor区分为form区和to区,from区和to区会相互转换,系统将活动可达对象直接复制到初始化为空的Survivor区(即To区),如果有些对象的空间特别大,垃圾回收器会直接将其复制到Old代中。

From区的活动对象到底是复制到To区还是Old代中去,取决于对象的生存时间,生存时间长的复制到Old代,否则,复制到To区


(2)并行回收器:

并行回收器与串行回收器基本相同,采用的算法也基本一致,唯一不同的是并行回收器对Young代的回收处理不同;

对Young代的回收采用了多个CPU处理,多线程处理;

Old代的回收行回收器的处理一致,不管采用多少个CPU,依旧采用单线程处理。


(3)并行压缩回收器:

并行压缩回收器与行回收器基本相同,采用的算法也基本一致,唯一不同的是并行压缩回收器对Old代的回收处理不同;

对Young代的回收行回收器的处理一致

对Old代回收,并行压缩回收器会对Old代的高密度可达对象进行检测,以检测出的高密度可达对象区域为中心,该中心的左边区域不会压缩和回收,而是将其右边区域进行压缩和回收。


(4)并发标记清除(Mark-Sweep)回收器(CMS回收器):

CMS回收器对Young代的回收处理与并行回收器完全一致,采用复制算法,因此会导致应用程序暂停;

对Old代的回收,串行、标志压缩可以等到Old代内存满了再回收,但CMS回收器要与应用程序并发运行,如果等到Old代内存满了再回收,应用程序就无内存可用,因此CMS回收器默认等Old代68%满了就可以回收了。

注意:CMS回收器Old回收采用的不是标志压缩算法,而是标志清除算法,因此它会产生内存碎片;

适用性:CMS回收器只需两次暂停应用程序,其他都与应用程序并行,适合实时性较高的应用程序;


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 魅族not3卡开了怎么办 魅族metal手机好卡怎么办 魅蓝手机锁机了怎么办 魅族note2屏坏了怎么办 魅族mx3开不开机怎么办 魅蓝max3充电慢怎么办? 魅族手机home键失灵怎么办 魅族开关键坏了怎么办 魅族开关键不灵怎么办 魅蓝开机键坏了怎么办 魅族开关机坏了怎么办 小米开机键坏了怎么办 魅族手机关机键失灵怎么办 魅蓝5s发热严重怎么办 华为荣耀v8信号差怎么办 贴膜白边去除液漏进屏幕里面怎么办 魅族pro6s电池休眠了怎么办 京东预约错了怎么办 魅蓝手机声音小怎么办 魅族2手机锁定了怎么办 flyme的密码忘了怎么办 魅族note3忘记开机密码怎么办 小米3s手机死机怎么办 二手小米手机有账号锁怎么办 小米五指纹解锁失灵怎么办 小米note3指纹解锁失灵怎么办 小米4s手机屏幕失灵怎么办 vivo手机没有otg功能怎么办 头戴耳机压头发怎么办 小米4c很卡怎么办 小米4c玩王者怎么办 小米4s屏幕乱跳怎么办 小米4s手机后壳碎了怎么办 小米5spius开不了机怎么办 小米5s无限重启怎么办 小米5s外屏坏了怎么办 小米5s内屏碎了怎么办 小米4充电没反应怎么办 小米5手机变卡了怎么办 小米5变卡了怎么办 小米手机充电无反应怎么办