Google Caliper:麻烦入门(Java Benchmarking)

时间:2013-05-02 02:11:46

标签: java benchmarking caliper

我正在尝试使用Google Caliper来测试一些简单的代码。我正在使用他们网站上的示例。这是我到目前为止所做的:

  1. 下载Caliper JAR并将其添加到我的Netbeans项目
  2. 遇到困难后,我下载了JUnit.jar和hamcrest.jar。仍然没有工作。
  3. 这是我的代码:

    import com.google.caliper.Benchmark;
    
    public class Benchmark1 extends Benchmark {
    
        public void timeNanoTime(int reps) {
          for (int i = 0; i < reps; i++) {
            System.nanoTime();
          }
        }
    
    }
    

    我正在扩展Benchmark,因为当我尝试在他们的网站上扩展“SimpleBenchmark”时,它告诉我它找不到SimpleBenchmark。然后,在我的主要方法中,创建一个新的Benchmark1()希望会发生一些事情。没什么。这是我主要课程中的代码。

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

    我知道这无疑是一个简单的错误,但我不能,尽管谷歌搜索很多,找出我出错的地方。代码编译但不运行。

    编辑:我应该说我在Windows 7上使用Caliper 1.0运行Netbeans

2 个答案:

答案 0 :(得分:19)

这是真的;文件过时且不完整。我在做这个工作。与此同时,这将是您的基准测试运行的原因。

您的主要方法应该委托给CaliperMain,而不是直接委托给基准。尝试

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

Windows将是一个问题。特别是issue 215将成为最大的阻挡者。

答案 1 :(得分:5)

您可以切换到Perfidix http://perfidix.org/

Perfidix具有eclipse Integration,可以像JUnit一样使用。

另一个选项是JUnitbenchmarks http://labs.carrotsearch.com/junit-benchmarks.html

这是Junit 4+的一个非常棒的框架。它甚至可以构建html图表来比较结果。