【问题标题】:OpenJDK JMH sometimes prints (*interrupt*) in results. What does this exactly mean?OpenJDK JMH 有时会在结果中打印 (*interrupt*)。这到底是什么意思?
【发布时间】:2014-07-13 23:48:25
【问题描述】:

我使用 OpenJDK JMH 0.9.3,有时我会得到一个如下所示的结果日志文件。 这里的 (*interrupt*) 是什么意思?

使用命令分叉 1 次:[/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/...] # 运行进度:53,85% 完成,ETA 00:01:26 # 叉子:1 个中的 1 个 # 预热迭代 1: 19950765,000 us/op # 预热迭代 2: (*interrupt*) (*interrupt*) (*interrupt*) 18107134,000 us/op # 预热迭代 3: (*interrupt*) 14439157,500 us/op 迭代 1:13571806,000 us/op 迭代 2:7484946,500 us/op 迭代 3: (*interrupt*) 12386565,000 us/op 迭代 4: (*interrupt*) 7245477,500 us/op 迭代 5: (*interrupt*) 9047236,000 us/op 结果:9947206,200 ±(99.9%) 11103651,130 us/op [平均] 统计数据:(最小值、平均值、最大值)= (7245477,500, 9947206,200, 13571806,000),stdev = 2883582,937 置信区间 (99.9%):[-1156444,930, 21050857,330]

【问题讨论】:

    标签: performance benchmarking microbenchmark jmh


    【解决方案1】:

    这意味着您的工作负载被 JMH 中断,很可能是因为它超出了迭代时间。它会打印“(interrupt)”,让您知道分数是在 JMH 的积极干预下获得的,可能不可靠。

    您可以使用@Timeout(time = 1, timeUnit = TimeUnit.HOURS) 注释来注释您的基准,它会知道这需要更长的时间。默认情况下,当您运行一些批量测量(没有设置时间限制)时,它将default to 10 minutes time limit

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2016-06-12
      • 2016-04-01
      相关资源
      最近更新 更多