首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDK 11对JDK 13性能

JDK 11对JDK 13性能
EN

Stack Overflow用户
提问于 2020-02-10 16:37:06
回答 1查看 4K关注 0票数 7

更新

在整个评论中,事实证明我所采用的基准测试方法是不正确的,因此结果是误导的。在纠正了我的方法之后(在接受的答案中),结果就像人们所预期的一样-- JDK 13的性能和JDK 11一样好。

原始问题

我在Windows10下对HashSet进行了一些性能测试,使用了以下JMH测试代码:

代码语言:javascript
复制
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@Fork(value = 1, warmups = 1)
public void init() {
    HashSet<String> s = new HashSet<>();
    for (int i = 0; i < 1000000; i++) {
        s.add(Math.random() + "");
    }
    s.size();
}

我在不同的JDK版本下编译并运行它,下面是我得到的结果:

我也用不同的堆大小测试了它(因此每个JDK有3种不同的颜色)。JDK 14当然是今天发布前的快照--只是为了看到ZGC在Windows下运行。

我想知道-在JDK 11之后发生了什么?(注意,对于JDK 12,它已经开始增长,尽管它不在上面的图表中)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-11 19:57:32

感谢大家在评论中提出建议。

答案很可能是Math.random()HashSet,或缺少Blackhole::consume或所有的组合。我将测试更改为简单地执行i + "aaaaaaaaa",并将HashSet替换为以适当大小初始化的ArrayList,以适应所有要填充的值。我还在末尾添加了Blackhole::consume,以排除不必要的JIT优化。

在所有这些之后,时间从JDK 8逐渐下降到11,然后在JDK 11-13之间保持不变。在JDK 14中,它略有上升,但是它还没有发布。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60154649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档