2015-12-29 23 views

回答

1

我還沒有驗證它的代碼的基礎上,但我理解主要結果是被二次,而結果由像廓額外的工具來獲得由JMH(時間測量)純粹產生數字。

更新:我剛纔已經看到,StackProfiler是江鈴控股意味着我的定義部分是不是完全有效的。

更新2:與此同時,阿列克謝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 

正如您所看到的,棧分析器的結果被標記爲二級結果。希望有點幫助。

+0

感謝+1,我會研究這一點,回去接受的答案! –

+1

換句話說,「主要」結果是測試的*實際* *主要*性能結果。 「輔助」結果是輔助數據:分析器結果,不對稱分測試結果等。每個測試只有一個主要結果,並且可能有許多次要結果。 –

+0

@AlekseyShipilev謝謝你指出。 –