gpt4 book ai didi

jmh - jmh 结果中的 cnt 列是什么?

转载 作者:行者123 更新时间:2023-12-04 02:59:14 25 4
gpt4 key购买 nike

在我的 jmh 课上,我正在使用

@BenchmarkMode(Mode.SampleTime)
@Measurement(iterations = 10)
@Threads(value = 10)

在类(class)。

在结果中,对于 cnt 列,我看到一种方法为 132,另一种方法为 155。我假设 cnt 可能表示执行次数,但这些数字与我的预期不符。

执行次数不应该是 10(线程)* 10(迭代)= 100 吗?

最佳答案

坦率地说,我不知道当基准模式为 Mode.SampleTimecnt 是如何计算的,但我想澄清几件事。

首先,使用 JMH 进行基准测试本质上是并发的。 @Threads 注释指定应分配 10 个线程来运行您的基准测试(默认为 4)。如果您不指定@Threads,它将只分配一个线程用于基准测试。

其次,如果您将模式更改为 Mode.Throughput 并添加 @Fork(value = 5) 注释,您将看到 cnt值为 50 的列。因为您的基准测试将在 5 个 fork 中执行,每个 fork 将有 10 次迭代。简单地说,对于这种情况,cntforkNumber * measurementIterations

最后,当模式为 Mode.SampleTime 或当您使用 @Param 注释(cnt = numOfParams * forkNumber * measurementIterations ).例如,如果您使用相同的注释 (Mode.SampleTime) 运行不同的基准测试,您将在 cnt 列上看到不同的数字。

希望对您有所帮助!

关于jmh - jmh 结果中的 cnt 列是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50799696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com