JVM (PART VI)垃圾收集算法
来源:互联网 发布:java 时间转时间戳 编辑:程序博客网 时间:2024/06/06 01:07
“标记-清除”算法
标记
首先标记出要回收的对象(引用计数器为0或者引用链不可到达)。
清除
回收标记的对象。
不足:
1:清除和标记两个过程的效率都不高。
2:清除之后会产生大量不连续的空间碎片。导致后期经常执行GC操作。
复制算法(用于新生代)
做法:
将内存划分为大小相同的两个部分,每次只使用其中的一块,当一块内存用完了,就将还存活的对象复制到另一份上面。然后再把已经使用过的内存一次清理掉。
图解
Eden和Survivor区域
具体为什么叫这个名字参考:
http://blog.csdn.net/uncle_gy/article/details/78136966
Survivor一般有两个,From Survivor和To Survivor。
Eden : From Survivor : To Survivor =8 : 1 : 1;(Hotspot JVM)
做法:
每次使用Eden和其中一个Survivor,当回收时将其中还存活的对象一次性复制到另一个Survivor中。最后清理掉Eden和刚刚使用过的Survivor。
图示:
标记-整理算法(老年代)
老年代的存活率较高,不适合使用复制收集算法。
做法:
1:标记可以回收的对象
2:将所有的存活的对象都向一端移动。
3:清理掉边界以外的内存
分代收集算法
做法:
根据对象存活周期将不同的堆内存分成几块:新生代和老年代。
根据不同代的特点采用不同的算法;
阅读全文
0 0
- JVM (PART VI)垃圾收集算法
- JVM垃圾收集算法
- JVM垃圾收集算法
- [JVM]垃圾收集算法
- JVM 垃圾收集算法
- JVM > 垃圾收集算法
- JVM垃圾收集算法
- JVM垃圾收集算法
- JVM垃圾收集算法
- jvm垃圾收集算法
- jvm垃圾收集算法
- jvm垃圾收集算法
- JVM垃圾收集算法
- Jvm垃圾收集算法
- JVM垃圾收集算法
- jvm垃圾收集算法
- jvm垃圾收集算法
- jvm垃圾收集算法
- 1040. 有几个PAT(25)
- sql 数字转换为字符
- SQL查询语句题目(二)
- NoSQL文档型数据库之MongoDb的配置与使用
- 2017.10.1 蚯蚓 思考记录
- JVM (PART VI)垃圾收集算法
- typecho安装后登录失败报错 405 Not Allowed nginx/1.10.2
- kuangbin带你飞:专题一 简单搜索 L
- uri,file,path互相转化
- 循环中setTimeout打印结果(使用闭包)
- 第四周Valid Parentheses
- 机器学习常见算法分类汇总
- NOIP 2014 飞扬的小鸟
- 大四生活02:秋招开始