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-диаграммы для сравнения результатов.