Google Caliper: проблема с запуском (Java Benchmarking)
Я пытаюсь использовать Google 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();
}
}
}
Я расширяю Benchmark, потому что, когда я пытаюсь расширить "SimpleBenchmark", как на своем сайте, он говорит мне, что не может найти SimpleBenchmark. Затем я в своем основном методе создаю новый Benchmark1(), надеясь, что что-то произойдет. Ничего. Это код внутри моего основного класса.
Benchmark1 test = new Benchmark1();
test.timeNanoTime(10);
Я знаю, что это, без сомнения, простая ошибка, но я не могу, несмотря на то, что много Google, выяснил, где я ошибаюсь. Код компилируется, но не запускается.
EDIT: я должен сказать, что я запускаю Netbeans в Windows 7 с помощью Caliper 1.0
Ответы
Ответ 1
Это правда; документация устарела и неполна. Я работаю над этим. В то же время, вот что будет делать ваш тест.
Ваш основной метод должен делегировать CaliperMain
, а не напрямую к эталону. Попробуйте
public static void main(String[] args) {
CaliperMain.main(Benchmark1.class, args);
}
Windows будет проблемой. В частности, issue 215 будет самым большим блокировщиком.
Ответ 2
Вы можете переключиться на Perfidix http://perfidix.org/
Perfidix имеет интеграцию eclipse и может использоваться как JUnit.
Другим вариантом будет JUnitbenchmarks http://labs.carrotsearch.com/junit-benchmarks.html
Это действительно отличная основа для Junit 4+. Он может даже строить html-диаграммы для сравнения результатов.