Serail 收集器
Serail 收集器
Serail 收集器是最基本、历史最悠久的垃圾收集器了。在 JDK 1.3 之前,是回收新生代的唯一选择。
Serail 收集器作为 HotSpot 中,Client 模式下的默认新生代垃圾收集器。
Serail 收集器采用复制算法、串行回收和“Stop The World”机制的方式执行内存回收。
除了年轻代之外,Serail 垃圾收集器还提供了用于执行老年代垃圾收集的 Serail Old 收集器。Serail Old 同样采用了 串行回收 和 “Stop The World” 机制,只不过内存回收算法使用的是“标记-压缩算法”。
- Serail Old 是运行在 Client 模式下 默认的 老年代 垃圾收集器。
- Serail Old 在 Server 模式下主要有两个用途。
- 与新生代的 Parallel Scavenge 配合使用
- 作为老年代 CMS 收集器的 后备垃圾收集方案
这个收集器是一个单线程的收集器,但是它的“单线程”的意义并不仅仅说明它只会使用一个CPU 或一条收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集时,必须暂停其它所有的工作线程,直到它收集结束(Stop The World)。
优点:简单而高效(和其它收集器的单线程比),对于限定单个 CPU 的环境来说,Serail 收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程效率。所以,运行在Client模式下的虚拟机是个不错的选择。
在用户的桌面应用场景中,可用内存一般不大,可以在较短时间内完成垃圾收集,只要不频繁发生,使用串行收集器是可以接受的。
在 HotSpot 虚拟机中,使用 -XX: +UseSerailGC 参数可以指定年轻代和老年代都使用串行收集器(等价于新生代使用Serail GC,老年代使用 Serail Old GC)。
- 点赞
- 收藏
- 关注作者
评论(0)