各种算法-分代(generational collecting)
来源:互联网 发布:联通宽带用广电网络 编辑:程序博客网 时间:2024/06/16 12:26
原理:基于对象生命周期分析得出的垃圾回收算法。把对象分为年轻代、年老代、持久代,对不同的生命周期使用不同的算法(2-3方法中的一个即4自适应)进行回收。
如上图所示:为Java的各代分布图
年轻代(young)
分为3个区。一个Eden区,2个survivor区。大部分对象在Eden中生成。当Eden区满时,还存活的对象将被复制到survivor区。当该survivor区满时,此区的存活对象被复制到另外一个survivor区,当第2个survivor区也满时,该区还存活的对象将被复制到年老区(tenured)。
年老代(tenured)
存放从年轻代(young)复制过来的对象。
持久代(perm)
用于存放静态文件,如Java类、方法等。持久代对垃圾回收没有显著的影响,但是有些应用可能动态生成或者调用一些class。持久代大小通过-XX:MaxPermSize=N进行设置
Thinking in java给java gc取了一个罗嗦的称呼:“自适应、分代的、停止-复制、标记-扫描”式的垃圾回收器。
导致Gc的情况:
1、tenured被写满
2、perm被写满
3、System.gc()的显式调用。
如上图所示:为Java的各代分布图
年轻代(young)
分为3个区。一个Eden区,2个survivor区。大部分对象在Eden中生成。当Eden区满时,还存活的对象将被复制到survivor区。当该survivor区满时,此区的存活对象被复制到另外一个survivor区,当第2个survivor区也满时,该区还存活的对象将被复制到年老区(tenured)。
年老代(tenured)
存放从年轻代(young)复制过来的对象。
持久代(perm)
用于存放静态文件,如Java类、方法等。持久代对垃圾回收没有显著的影响,但是有些应用可能动态生成或者调用一些class。持久代大小通过-XX:MaxPermSize=N进行设置
Thinking in java给java gc取了一个罗嗦的称呼:“自适应、分代的、停止-复制、标记-扫描”式的垃圾回收器。
导致Gc的情况:
1、tenured被写满
2、perm被写满
3、System.gc()的显式调用。
4、上一次GC之后heap的各域分配策略动态变化。
http://www.blogjava.net/showsun/archive/2011/07/21/354745.html
0 0
- 各种算法-分代(generational collecting)
- GC算法精解(分代搜集算法)
- Java 分代收集算法
- 分代收集算法详解
- java分代垃圾回收算法(GC)
- java内存回收算法(分代收集)
- 对分查找算法(迭代和递归方式)
- Java虚拟机学习:分代收集算法
- JVM垃圾分代回收算法详解
- Java虚拟机学习:分代收集算法
- Java GC 分代收集算法
- 基于分代的垃圾收集算法
- JVM内存管理------GC算法精解(分代搜集算法)
- 垃圾回收算法详解(二)分代垃圾回收算法
- JAVA虚拟机:垃圾收集算法(标记清除算法、复制算法、标记整理算法、分代收集算法)
- JVM-GC算法_分代收集算法
- 垃圾回收算法之分代回收算法
- 垃圾回收算法之分代回收算法
- UIButton title换行
- linux find命令详解
- 【知识导图】第五章 树和二叉树
- 不同浏览器对长链接的支持线不同
- 从设计理念看java的接口与抽象类(二)
- 各种算法-分代(generational collecting)
- NSThread
- StartCoroutine使用方法简介
- prefast
- Linux 终端
- install nginx
- 【知识导图】第六章 图
- Java GC基本算法
- OSX Docker 开放端口