对比 | Minor GC | Full CG |
---|
发生位置 | 新生代 | 老年代 |
算法 | 复制 | 标记清除/标记整理 |
- 复制算(copying)法的优点是 不会产生内存碎片,而且可以完整的保留对象,
缺点是:犹豫eden 和两个 survivor区是8:1:1 所以总有百分之10的空间浪费,对象存活率高的话,复制性能就比较差了 - 标记清除(Mark Sweep):1.扫描对存活的对象进行标记。2.扫描整个空间,对未被标记的对象进行回收。节约空间,但是需要两次扫描,并且产生了内存碎片。
- 标记整理 (Mark Compact ):效率低,不仅需要标记所有存活的对象,而且还需要整理所有存活对象的引用地址
调优参数 :Xms : Xmx:
看日志:XXprintdetail;
新生代分为 Eden ,sur0 ,sur1
老年代
对比1.6 ,1.7 ,1.8 jvm ,hotspot
| 1.6 | 1.7 | 1.8 |
---|
运行时常量池 | 方法区 | 堆 | 元空间 |
永久代 | √ | √ | × |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c20ca69ae65b3d78d6444ed1c8534caa.png)
在永久代移除后,字符串常量池也不再放在永久代了,但是也没有放到新的方法区—元空间里,而是留在了堆里(为了方便回收?)。运行时常量池当然是随着搬家到了元空间里,毕竟它是装静态变量、字节码等信息的,有它的地方才称得上方法区。