2014-10-18 52 views
0

我使用Google Caliper(最新主代碼)在兩個維度上對四段代碼進行基準測試。例如,下面的基準測試方法:爲Google Caliper指定基準的其他維度

@Benchmark mechanismOneBreadth(...) 
@Benchmark mechanismOneDepth(...) 
@Benchmark mechanismTwoBreadth(...) 
@Benchmark mechanismTwoDepth(...) 

我想這樣做是註釋與對結果的應用程序的顯示/操作一些額外的維度各自基準,這樣我就可以有一個寬度比較一個深入,而且還要比較深度和深度兩個寬度。例如:

@Benchmark @Dimensions({"one", "breadth"}) mechanismOneBreadth(...) 
@Benchmark @Dimensions({"one", "depth"}) mechanismOneDepth(...) 
@Benchmark @Dimensions({"two", "breadth"}) mechanismTwoBreadth(...) 
@Benchmark @Dimensions({"two", "depth"}) mechanismTwoDepth(...) 

規定將採取行動非常像在UI顯示參數的尺寸,但由於所謂的代碼在每種情況下不同的I不能使用的參數。有沒有辦法用當前版本的Caliper來做到這一點?

回答

1

指定的尺寸非常像在UI上顯示的參數,但我無法使用參數,因爲被調用的代碼在每種情況下都不相同。

但你可以(我經常這樣做)。只需編寫一個測試參數的方法,然後根據需要調度。當整個循環發生在內部時,開銷是完全可以忽略的,所以爲什麼不呢? PS:如果某種組合沒有意義,你可以使用throw new SkipThisScenarioException,假設你使用的是當前版本(我使用的是git中的一個,不知道已經發布了什麼)。

+0

是的,我開始這樣做,但它有點複雜......我的問題被簡化了一下。 – Raman 2014-10-18 20:27:03

+0

@Raman恐怕只有這樣。我曾遇到的唯一問題是,有些組合沒有意義。我想,你需要在你的問題上添加一些無聊的細節以獲得更多信息。 – maaartinus 2014-10-18 20:35:19

+1

謝謝,我能夠簡化我的問題空間,使其可行。我接受你的答案。 – Raman 2014-10-22 17:35:49