JVM
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