由于Java 7将默认使用新的G1垃圾收集,Java是否能够处理一个数量级更大的堆而不会产生"破坏性"的GC暂停时间?有人在生产中实际实施了G1,你的经历是什么?
公平地说,我唯一一次看到非常长的GC暂停是非常大的堆,远远超过工作站.澄清我的问题; G1将打开数百GB的网关?TB?
有没有人知道Java的新垃圾优先(G1)垃圾收集器的任何性能基准(与"旧"GC相比)?
在GC暂停时间方面,Sun表示G1有时更好,有时甚至比CMS差.虽然G1收集器成功地限制了总暂停时间,但它仍然只是一个软实时收集器.换句话说,它无法保证它不会影响应用程序线程始终满足其截止日期的能力.但是,它可以在明确定义的边界内运行,使其成为需要保持高吞吐量性能的软实时系统的理想选择.
我想看看Java CMS(并发标记扫描)和G1(垃圾优先)收集器的吞吐量和延迟的实际测量.