垃圾清除算法:
标记清除算法:标记所有的要回收对象,回收,问题是会产生内存碎片
标记整理算法:第一步标记出所有存活对象,移到空间一端,然后清理这个空间
以外的内存
复制算法:内存分两块,一次用一块,一次回收一块
YOUNG区回收:serial回收器、ParNew、 ParallelScavenge
serial回收只是单线程,会stop the world
ParNew是多线程收集垃圾,还是会stop the world
parallelScavenge:侧重吞吐量,也是多线程,也会stop the world
在收集时,允许更多的事务。可能会间隔的收集。
OLD区回收:Serial Old回收器、Parallel OLD回收器、CMS回收器
Parallelold 回收器:也是并行回收,侧重吞吐量。parallel old
和parallel scavenge合用,可以实现最大吞吐量。
不是网站秒杀,只是应用程序实现后台计算的,
可以这两个组合使用。可能导致停顿的时间最大。
CMS:是现在用的最多的。多并发,低停顿。是用来减少用户响应的
最少时间。CMS对CPU资源敏感,CMS默认启动的回收线程数是
(CPU数量+3)/4;无法处理浮动垃圾,出现ConcurentMode Failure
失败而导致另一次FullGC,默认老年代使用了68%的空间就会被激活
执行回收;收集结束会产生大量空间碎片,使得不能容纳新的大对象。
因此两个参数:-XX:+UseCMSCompactAtFullCollection,是否进行整理、
-XX:CMSFullGCcBeforeCompaction,收集几次了再进行整理
新出来的G1回收,可用于young区可用于old区,1代表first的意思。
一个简单的例子:
-XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -Xms128m -Xmx128m -Xmn100M
-XX:SurvivorRatio=8
使用ParNewGC: -XX:+UseParNewGC;使用parallel scavenge:-XX:UseParallelGC
使用parallel old:-XX:+UseParallelOldGC
标记清除算法:标记所有的要回收对象,回收,问题是会产生内存碎片
标记整理算法:第一步标记出所有存活对象,移到空间一端,然后清理这个空间
以外的内存
复制算法:内存分两块,一次用一块,一次回收一块
YOUNG区回收:serial回收器、ParNew、 ParallelScavenge
serial回收只是单线程,会stop the world
ParNew是多线程收集垃圾,还是会stop the world
parallelScavenge:侧重吞吐量,也是多线程,也会stop the world
在收集时,允许更多的事务。可能会间隔的收集。
OLD区回收:Serial Old回收器、Parallel OLD回收器、CMS回收器
Parallelold 回收器:也是并行回收,侧重吞吐量。parallel old
和parallel scavenge合用,可以实现最大吞吐量。
不是网站秒杀,只是应用程序实现后台计算的,
可以这两个组合使用。可能导致停顿的时间最大。
CMS:是现在用的最多的。多并发,低停顿。是用来减少用户响应的
最少时间。CMS对CPU资源敏感,CMS默认启动的回收线程数是
(CPU数量+3)/4;无法处理浮动垃圾,出现ConcurentMode Failure
失败而导致另一次FullGC,默认老年代使用了68%的空间就会被激活
执行回收;收集结束会产生大量空间碎片,使得不能容纳新的大对象。
因此两个参数:-XX:+UseCMSCompactAtFullCollection,是否进行整理、
-XX:CMSFullGCcBeforeCompaction,收集几次了再进行整理
新出来的G1回收,可用于young区可用于old区,1代表first的意思。
一个简单的例子:
-XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -Xms128m -Xmx128m -Xmn100M
-XX:SurvivorRatio=8
使用ParNewGC: -XX:+UseParNewGC;使用parallel scavenge:-XX:UseParallelGC
使用parallel old:-XX:+UseParallelOldGC