2013-05-02 104 views
10

我想用Google Caliper來測試一些簡單的代碼。我正在使用他們網站上的例子。這是我到目前爲止已經完成:Google Caliper:麻煩入門(Java Benchmarking)

  1. 下載的顯卡JAR並把它添加到我的NetBeans項目
  2. 有困難後,我下載的junit.jar和hamcrest.jar。還是行不通。

這裏是我的代碼:

import com.google.caliper.Benchmark; 

public class Benchmark1 extends Benchmark { 

    public void timeNanoTime(int reps) { 
     for (int i = 0; i < reps; i++) { 
     System.nanoTime(); 
     } 
    } 

} 
我延長基準,因爲當我嘗試喜歡在他們的網站「SimpleBenchmark」延長它告訴我它無法找到SimpleBenchmark

。然後,在我的主要方法中,創建一個新的Benchmark1(),希望發生一些事情。沒有什麼。這是我的主類中的代碼。

Benchmark1 test = new Benchmark1(); 
test.timeNanoTime(10); 

我知道這是毫無疑問的一個簡單的錯誤,但我不能,儘管谷歌搜索很多,找出我要去哪裏錯了。代碼編譯但不運行。

編輯:我應該說我運行在Windows 7上使用的Netbeans 1.0顯卡

回答

19

這是真的;該文件嚴重過時和不完整。我在做這個工作。與此同時,這將是什麼讓你的基準運行。

您的主要方法應該委託給CaliperMain,而不是直接指向基準。嘗試

public static void main(String[] args) { 
    CaliperMain.main(Benchmark1.class, args); 
} 

Windows將是一個問題。特別是,issue 215將是最大的阻擋者。

+8

Windows不支持? WTF 請在項目主頁上張貼此紅色大通知。 – Thorben 2013-05-08 19:21:39

+2

目前的預發佈版Caliper由於缺陷而不支持Windows。當我們解決錯誤時,支持將會返回,但沒有一個開發人員擁有Windows機器,所以轉換速度很慢。而且,Windows由於定時器的不精確性(與OS X類似的問題)而成爲不太常見的生產環境並且有些差的基準測試環境,因此Windows的優先級較低。這就是說,由於人們在Windows上開發,所以它仍然是一個目標。請將該問題(以及其他任何人)列爲明星,因爲我們認爲這是優先考慮工作的一個因素。 – gk5885 2013-05-13 01:23:29

+1

很高興聽到團隊正在努力。沒有意識到卡尺是在它的預發佈。聽到Windows在花費時間建立基準並開始工作之後無法與卡尺一起工作有點令人沮喪。我同意Linux對生產機器更聰明的觀點,但有時候你在你的筆記本電腦上編碼。大多數筆記本電腦都配有Windows以及依賴它的製造商提供的特殊軟件。因此使用現成的系統會更舒服。也許你的開發人員可以從dreamspark或其他地方獲得Windows。 – Thorben 2013-05-15 20:19:02