有没有人知道Java新垃圾优先(G1)垃圾收集器的性能基准(与“旧”GC相比)?
就GC停顿时间而言,Sun表示G1有时更好,有时甚至比CMS差。虽然G1收集器成功地限制了总暂停时间,但它仍然只是一个软实时收集器。换句话说,它无法保证它不会影响应用程序线程始终满足其截止日期的能力。但是,它可以在一组定义明确的边界内运行,使其成为需要保持高吞吐量性能的软实时系统的理想选择。
我想看看Java CMS(并发标记扫描)和G1(垃圾优先)收集器的吞吐量和延迟的实际测量值。
答案 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)
答案 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/