我的读书笔记
Serial 收集器
Serial 收集器是最基本的收集器,曾经是新生代唯一的收集器。这个收集器是一个但现场的收集器,但是“单线程”的意义并不是他只会使用一个CPU或一条线程去完成垃圾收集工作。更重要的是他在垃圾收集的时候,必需暂停其他所有的工作线程,直到它收集结束(“stop the world“)。
对于”Stop the world”,带给用户的不良体验,类似于我们在打扫房间的时候,肯定回让无关的人安安静静的在椅子上待着或者到屋子外待着,如果我们一边打扫,他一边乱扔垃圾,那么房间什么时候可以打扫完呢? 垃圾收集这个工作肯定比打扫房间复杂的多。
实际上到现在为止,他依然时候虚拟机运行在Client模式下默认的新生代收集器。他也有优于其他收集器的地方,简单而高效(于其他收集器的单线程比),对于限定个数的CPU环境来说,Serial 收集器犹豫没有线程交叉的开销,专心做垃圾收集自然会获得最高的单线程收集效率。在用户的左面场景中,分配给虚拟机管理的内存一般不会很大,收集几十兆甚至一两百兆的新生代(仅仅是新生代使用的内存,桌面应用一般不会再大了)。停顿时间完全可以控制在几十毫秒至一百多毫秒内,只要不是频繁发生,这点停顿是完全可以接受的。所以,Serial 收集器对于运行在Client 模式下的虚拟来说是最好的选择。
2017/10/19