cms垃圾回收器的工作流程是,初始标记、并发标记、重新标记、并发清除。这4个流程中,初始标记和重新标记需要暂停工作线程。
cms垃圾回收器的缺点是,对于服务器cpu比较敏感。然后是不能清理浮动垃圾。再然后由于其基于标记-清理算法,所以会产生大量的空间碎片。
g1垃圾回收器在理念上抛弃了分代的概念,将内存空间分为大小相等的若干个区域。然后维护一个有限列表。根据系统配置的最大允许回收时间,优先回收垃圾最多的区域。
g1垃圾回收器由于基于标记-整理算法,所以不会产生空间碎片。另外一个优点就是可以精确控制停顿时间。
jdk1.7/1.8中,新生代用ps回收器,老年代用po回收器。1.9之后,采用g1回收器了。