一.串行回收器
串行回收器是指使用单线程进行垃圾回收的回收器。每次回收只有一个工作线程,对于并行能力较弱的pc来说,串行回收器的专注性和独占性有较好的性能表现。
特点:
- 单线程进行垃圾回收。
- 独占式的垃圾回收。
优点:
- 最古老而且稳定。
- 对于并行能力较弱(cpu核数少)的pc来说效果好。
- 单线程没有线程切换的开销
缺点:
-
可能会产生较长的停顿:
串行回收器回收时,java应用程序中的线程需要暂停等待,等待垃圾回收的完成。这种现象叫“Stop-The-World”.这样造成很差的用户体验,在实时性要求高德应用场景中,这种现象是不能被接受的。
image.png
新生代串行回收器:
回收算法使用复制算法。
使用方法:-XX:+UseSerialGC指定使用新生代串行回收器和老年代串行回收器。
一次新生代串行回收器对垃圾的回收:

老年代串行回收器:
回收算法使用标记删除算法。
缺点:由于老年代的空间比新生代的空间大,所以应用程序可能会因此停顿较长的时间。
使用方法:
- -XX:+UseSerialGC 指定使用新生代串行回收器和老年代串行回收器。
- -XX:+UseParNewGC 新生代使用ParNew回收器,老年代串行回收器。
- -XX:+UseParallelGC 新生代使用并行回收器,老年代串行回收器。
网友评论