面试题答案
一键面试优点
- 低停顿时间:CMS回收器以获取最短回收停顿时间为目标,在垃圾回收过程中,大部分工作可以和应用程序并发执行,减少了应用程序的停顿时间,对于响应时间敏感的应用程序非常友好。
- 适合高并发场景:在多处理器环境下,能充分利用多线程的优势,并行处理垃圾回收工作,提升垃圾回收效率,适合高并发的应用场景。
缺点
- 对CPU资源敏感:由于CMS回收器在并发阶段需要与应用程序线程同时运行,会占用一部分CPU资源,在CPU资源紧张的情况下,可能会影响应用程序的性能。
- 产生浮动垃圾:CMS回收器在并发标记和并发清除阶段,应用程序仍在运行,可能会产生新的垃圾对象,这部分垃圾对象无法在本次回收过程中被清理,只能留到下一次垃圾回收,称为浮动垃圾。
- 空间碎片问题:CMS回收器采用标记 - 清除算法,在回收完成后会产生大量不连续的内存碎片,随着时间推移,可能导致无法为大对象分配连续内存空间,从而提前触发Full GC。
优先选择场景
- Web应用和服务端应用:对于响应时间要求较高的Web应用和服务端应用,如电子商务网站、大型门户网站等,CMS回收器的低停顿特性可以保证系统的快速响应,提升用户体验。
- 交互性强的应用:如在线游戏服务器、交互式软件等,这些应用需要快速响应用户操作,CMS回收器能满足其对停顿时间的严格要求。