Java垃圾优先(G1)垃圾收集器的相对性能?

时间:2010-07-19 16:29:35

标签: java performance garbage-collection

有没有人知道Java新垃圾优先(G1)垃圾收集器的性能基准(与“旧”GC相比)?

就GC停顿时间而言,Sun表示G1有时更好,有时甚至比CMS差。虽然G1收集器成功地限制了总暂停时间,但它仍然只是一个软实时收集器。换句话说,它无法保证它不会影响应用程序线程始终满足其截止日期的能力。但是,它可以在一组定义明确的边界内运行,使其成为需要保持高吞吐量性能的软实时系统的理想选择。

我想看看Java CMS(并发标记扫描)和G1(垃圾优先)收集器的吞吐量和延迟的实际测量值。

5 个答案:

答案 0 :(得分:8)

最初的科学文章(Detlefs,Flood,Heller和Printezis的"Garbage-First Garbage Collection")包含有关实际措施的一些细节(第4节)。

答案 1 :(得分:3)

我们刚刚完成了一系列针对CMS和G1的测试,使用了类似的人体工程学设计。这是产品特定的,非常主观的,我们正在使用Java 6(因此G1在“预览”版本中)但是......

使用CMS的系统比G1快20%。这是使用8GB和12GB堆空间测试的,分别有1GB和1.5GB的年轻空间。

再次 - 主观,单一系统,特定负载 - 但这是我们的经验。

答案 2 :(得分:2)

如果您有一个Web应用程序或其他处理大量客户端/请求的应用程序,并且响应时间对您很重要,那么您最好使用CMS。 这个测试发现在'Java性能和可伸缩性'

答案 3 :(得分:0)

Taranfx article(2009-08-29)比较了4个简单基准测试中的Java 5,6和7性能。

答案 4 :(得分:0)

由于多线程的想法,

G1与CMS的比较大多快。与Parallel-GC相比,我不知道 - 它可能是相同的。 当然G1由于没有两种线程运行(大多数是小线程)而更加实时。它更快,因为任何线程都应该对性能产生相同的影响。即使压缩也仅在复印时完成。 有关详细信息,请仔细查看: http://geekroom.de/java/java-expertise-g1-fur-java-7/