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更快,但它总是在不断改进.
所有(几乎)Java垃圾收集器都有某种Stop-the-world阶段,其中所有Java线程(非本机线程)都被挂起,等待独占系统操作完成.这种状态有时被称为安全点.
现代垃圾收集器与应用程序线程同时运行,这意味着垃圾收集器在应用程序线程运行的同时执行其工作.在垃圾收集器进程期间,存在需要独占访问存储器的阶段,在该阶段,应用程序Java线程进入安全点状态.
摆脱世界末日垃圾收集的另一种方法是使用Azul系统的C4收集器来使用Zing JVM.该实现具有低暂停方法,根本没有停止世界的集合.相反,它使用的是并发压缩方法,没有世界末日.