JVM学习笔记14

24 阅读1分钟

HotSpot中几种类型的GC

Serial GC

这个垃圾收集器对新生代使用mark-copy,对老年代使用mark-sweep-compact。顾名思义——这两个收集器都是单线程收集器,无法并行处理手头的任务。两个收集器还会触发 stop-the-world 暂停,停止所有应用程序线程。

该 GC 算法无法利用现代硬件中常见的多个 CPU 内核。

Parallel GC

这种垃圾收集器的组合在年轻一代中使用mark-copy,在老一代中使用mark-sweep-compact。 Young 和 Old 收集都会触发 stop-the-world 事件,停止所有应用程序线程以执行垃圾收集。两个收集器都使用多线程运行mark-copymark-sweep-compact,因此得名“并行”。使用这种方法,收集时间可以大大减少。

由于收集的所有阶段都必须在没有任何中断的情况下进行,因此这些收集器仍然容易受到长时间暂停的影响,在此期间您的应用程序线程会停止。