sách gpt4 ai đã đi

Hiệu suất của JDK 11 so với JDK 13

In lại 作者:行者123 更新时间:2023-12-01 11:17:50 29 4
mua khóa gpt4 Nike

làm mới

在整个评论中,结果证明我采用的基准测试方法是不正确的,因此结果具有误导性。纠正我的方法后(如已接受的答案),结果正如人们所期望的 - JDK 13 的性能与 JDK 11 一样好。有关更多详细信息,请参阅答案。

原问题

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

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

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

nhập mô tả hình ảnh ở đây

我也用不同的堆大小对其进行了测试(因此每个 JDK 有 3 种不同的颜色)。
JDK 14 当然是今天的预发布快照——只是为了看看 ZGC 在 Windows 下的表现。

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

1 Câu trả lời

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

答案很可能是Math.random()hoặc HashSet ,或丢失 Blackhole::consume或所有的组合。我将测试更改为简单地执行 i + "aaaaaaaaa"并替换 HashSetMảngDanh sách用适当的大小预先初始化以适应要填充的所有值。我还加了 Blackhole::consume最后排除不需要的 JIT 优化。

毕竟,时间从 JDK 8 逐渐下降到 11,然后在 JDK 11-13 之间保持大致相同。在 JDK 14 中,它略有提高,但还好——它还没有发布。

关于java - JDK 11 与 JDK 13 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60154649/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com