0

我正在尝试记录 JMH 基准测试的结果。基准测试很棒并且按预期工作。问题在于记录结果。无论我使用哪种 ResultFormatType,结果输出都会显示来自堆栈分析器的信息的 NaN。

我知道这可能是因为堆栈信息延迟到摘要。如何将此摘要数据添加到我尝试存储的结果中?

    Options opt = new OptionsBuilder().include(".*").warmupIterations(5)
    .measurementIterations(5).addProfiler(StackProfiler.class).forks(0).resultFormat(ResultFormatType.CSV)
    .result("Benchmark_Results_" + new SimpleDateFormat("dd.MM.yyyy_HH.mm.ss").format(new Date())).build();

CSV 输出示例。

"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit"
"com.example.com.BenchmarkTest.runBenchmark","avgt",1,5.000000,1.873819,0.132597,"s/op"
"com.example.com.BenchmarkTest.runBenchmark:·stack","avgt",1,1.000000,NaN,NaN,"---"
4

1 回答 1

1

在 JMH 中,堆栈分析器仅在文本报告表中产生一个虚拟结果,这是由于报告代码中需要来自基准和分析器的标量结果的缺陷。你可以完全忽略它。查看性能分析结果的基准输出。

没有明确的方法将堆栈分析结果存储为一堆标量。

于 2015-06-12T07:07:53.747 回答