年轻一代的垃圾收集器

Ala*_*per 5 java garbage-collection

有排序问题 - JDK 7中的所有GC(G1除外)是否始终使用stop-the-world进行年轻代收集?

谢谢

Pet*_*rey 10

对于OpenJDK,JRockit,IBM JVM和Sun/Oracle JDK,年轻的系列总是为每个可用的收集器停止世界.

我所知道的唯一没有阻止世界收藏家的JVM是Azul的Zing.(不是免费的)

虽然OpenJDK/Hotspot有CMS,但这主要是并发的.仍有世界各地的部分停留,在某些情况下,CMS将退回到全球GC,这是一个世界末日.

AFAIK,很难找到真实世界的例子,其中G1在暂停时间方面比CMS更快,但它总是在不断改进.

您的GC日志是否与您说话

  • 具体来说,AFAIK,Zing是目前世界上唯一一个在航运JVM中存在的不停的年轻一代收藏家.对于所有其他JVM(Oracle,OpenJDK,J9,jRockit,......)以及所有其他收藏家,年轻一代的收藏品是一个单一的世界末日活动.这似乎不会很快改变. (2认同)

Rob*_*und 5

所有(几乎)Java垃圾收集器都有某种Stop-the-world阶段,其中所有Java线程(非本机线程)都被挂起,等待独占系统操作完成.这种状态有时被称为安全点.

现代垃圾收集器与应用程序线程同时运行,这意味着垃圾收集器在应用程序线程运行的同时执行其工作.在垃圾收集器进程期间,存在需要独占访问存储器的阶段,在该阶段,应用程序Java线程进入安全点状态.

摆脱世界末日垃圾收集的另一种方法是使用Azul系统的C4收集器来使用Zing JVM.该实现具有低暂停方法,根本没有停止世界的集合.相反,它使用的是并发压缩方法,没有世界末日.