我正在尝试使用Google Caliper对一些简单的代码进行基准测试。我正在使用他们网站上的例子。下面是我到目前为止所做的:
- 下载Caliper JAR并将其添加到我的Netbeans项目 遇到困难后,我下载了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和Caliper 1.0
是真的;这些文档严重过时且不完整。我正在努力。与此同时,下面是让基准运行的方法。
您的主方法应该委托给CaliperMain
,而不是直接委托给基准测试。试着
public static void main(String[] args) {
CaliperMain.main(Benchmark1.class, args);
}
Windows将是一个问题。特别是,第215条将是最大的障碍。
你可以切换到Perfidix http://perfidix.org/
Perfidix有eclipse集成,可以像JUnit一样使用。
另一个选项是junitbenchmark http://labs.carrotsearch.com/junit-benchmarks.html
对于Junit 4+来说,这是一个非常棒的框架。它甚至可以构建html图表来比较结果。