20 December 2012

JVM 参数设置:

http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

内存区域划分:

1.新生区

2.年老区

新生去和年老区细分为 Eden [From Space,To Space]救助空间 Old 新生区GC使用引用计数器方式进行清理 先将 eden 中存活的 区复制到from space 区 Eden直接删除,当 from space 需要GC时就和to space 配合 然后拷贝到 old 区。

3.永久区 也叫方法区 包括[本地方法区,常量池] 存放class类信息、常量、静态变量、反射生成的对象。反射对象时会生成一些元数据不能被回收,以便下次反射重复利用

4.直接内存区 Nio等直接使用主机内存的方法 计算大小方式[top res的值 减去 新生、年老、永久区的大小]

GC 算法

引用计算器:

JVM中使用引用计算器来统计对象是否存活,给对象添加一个引用计数加1,当一个对象计数为0时认为该对象已死,这种计算器的缺点是当2个对象互相引用时并且为其他引用那么这2个对象也没法回收。–这个算法主要用在新生代

根搜索算法:

通过一系列名为“GC Roots”的对象作为起点进行向下搜索,如果某个节点没有父引用那他和它的子节点都将被回收



blog comments powered by Disqus