JMH中getPrimaryResults
类的getSecondaryResults
和RunResults
方法之间有什么区别?
答案 0 :(得分:1)
我还没有在代码基础上验证它,但据我所知,主要结果是仅由JMH(时间测量)产生的数字,而次要结果是通过分析器等其他工具获得的。
更新:我刚刚看到StackProfiler是JMH的一部分,这意味着我的定义并不完全有效。
更新2:与此同时,Aleksey Shipilev在评论中提供了更清晰的定义。
您可以在下面找到从基准测试结果中提取的一些行。我用' -prof stack'
开始了基准测试[java] Iteration 10: 104439194.250 ±(99.9%) 7883662.439 ns/op
[java] ·stack: <delayed till summary>
...
[java] 118162555.108 ±(99.9%) 8317229.030 ns/op [Average]
[java] (min, avg, max) = (102325413.750, 118162555.108, 149303159.000), stdev = 12448837.807
[java] CI (99.9%): [109845326.078, 126479784.138] (assumes normal distribution)
...
[java] Secondary result "·stack":
[java] Stack profiler:
[java] ....[Thread state distributions]....................................................................
[java] 87.3% RUNNABLE
[java] 12.7% WAITING
[java] ....[Thread state: RUNNABLE].................................................................... ....
[java] 82.3% 94.3% sun.management.ThreadImpl.getThreadTotalCpuTime0
如您所见,堆栈探查器的结果标记为辅助结果。希望有所帮助。