垃圾收集器

2018-04-18  本文已影响0人  圣村的希望

简介

 垃圾收集器是垃圾收集算法的具体实现,各种垃圾收集器没有好坏之分,适合自己当前应用的垃圾收集器才是最好的垃圾收集器,用户可以根据自己应用的特点和要求组合出各个年代所使用的垃圾收集器。

垃圾收集器种类以及简单介绍:
相关概念解释:

 1. 并行:是指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。
 2. 并发:是指用户线程和垃圾收集线程同时进行工作,用户线程继续运行,而垃圾收集线程此时运行在另一个CPU上。
 3. 浮动垃圾:在CMS垃圾收集器中,在并发清除阶段由于用户线程也在运行,此时会产生新的垃圾,CMS此次无法处理只能在下一次GC时回收,这一部分垃圾就被称为浮动垃圾
 4. concurrent mode failure:因为并发收集时,用户线程也在运行,因此需要预留一部分空间提供给用户线程在并发收集时使用,在这个时候预留空间不足时就会出现concurrent mode failure失败。

CMS收集器工作流程:
CMS收集器的缺点:
  1. 对CPU资源比较敏感:在并发阶段由于和用户线程并发执行会占用用户线程的线程资源,会导致用户程序变慢。
  2. 会产生浮动垃圾:在并发清除阶段由于用户线程的并发执行会产生产生浮动垃圾,在运行期间预留内存空间不足时会发生concurrent mode failure,进而临时启用Serial Old收集器来进行工作,这样导致停顿时间变长。
  3. 产生碎片空间:由于CMS采用的是标记-清除算法,在收集结束后会产生大量的碎片空间,会给大对象分配带来麻烦,因此会触发Full GC。
上一篇下一篇

猜你喜欢

热点阅读