JVM CMS和G1区别?
时间: 2023-05-23 20:05:56 浏览: 208
深入理解JVM & G1 GC
A:JVM CMS和G1都是Java虚拟机的垃圾收集器,它们的主要区别在于:
1. 实时性:CMS(Concurrent Mark Sweep)收集器的最大优势就是在垃圾收集时不需要暂停用户线程,可以实现较高的实时性。G1(Garbage First)收集器也可以做到实时性,但在进行Full GC时需要暂停用户线程。
2. 内存整理:CMS收集器采用“标记-清除”算法,会造成内存碎片化。G1收集器则采用了“基于区域的内存管理”算法,可以动态地将内存划分成若干个大小相等的区域,并对这些区域进行垃圾收集和整理,不会产生内存碎片。
3. 支持内存压缩:CMS收集器没有内存整理的能力,因此无法进行内存压缩操作。而G1收集器可以在进行垃圾收集的同时,对内存进行整理和压缩操作,可以更有效地利用内存空间。
总结来说,如果对实时性要求较高,可以选择CMS收集器;如果对垃圾收集效率和内存空间利用要求较高,可以选择G1收集器。
阅读全文