Java 8最快的垃圾搜集器是什么? - ImportNew
Java 9 默认应该为 G1 吗?
有一种提议是在 OpenJDK9 的服务器端使用 G1 作为默认 GC。我第一反应就是拒绝该提议:
G1 的平均值要慢17.60%
G1 在每个数据集用例下都比较慢。
在最大数据集(Machine Reassignment B10)下,表现比其它数据集都要差,G1 慢了34.07%。
如果在开发机和服务器之间采用不同的默认 GC,则开发者基准测试的可信度就会下降。
另一方面,存在几个需要注意的细节:
G1 关注是 GC 暂停的问题,而不是吞吐量。对于这些用例(计算量比较大),GC 暂停时长基本没影响。
这是一个(基本是)单线程的基准测试。并行解决多个问题或采用多线程解决的基准测试,结果可能不同。
G1 推荐的堆内存至少是 6GB。而这次基准测试的堆内存是 2GB,即使在最大数据集(Machine Reassignment B10)也只需要这么多内存。
海量计算只是 OpenJDK 的诸多功能中的一个:这是在社区广泛争论的一个问题。如果有其他方面(如网站服务)的证明,可能值得改变默认GC。但是,请首先向我展示你实际项目的基准测试。
Read full article from Java 8最快的垃圾搜集器是什么? - ImportNew
No comments:
Post a Comment