Легкая библиотека микробенчмарков с графическим выводом (Java) - PullRequest
3 голосов
/ 05 января 2010

Есть ли хорошая библиотека Java для того, чтобы взять на себя труд по написанию хороших микро-тестов? Я думаю, что-то, что может обеспечить (с минимумом хлопот) предоставить текст (CSV или HTML, выбирайте) вывод результатов и, возможно, графики, суммирующие результаты. В идеале это должно быть что-то, что хорошо сочетается с JUnit или аналогичным, и должно быть простым для настройки тестов с переменными параметрами.

Я посмотрел на japex, но нашел его слишком тяжелым ( 25 МБ библиотек для включения ?!) и, честно говоря, работать с ним было просто больно. Практически несуществующая документация, копаясь в муравьях, XML и путях ... и т. Д.

Ответы [ 2 ]

4 голосов
/ 05 января 2010

Некоторые из нас из команды Google Collections находятся в начале создания чего-то, что удовлетворяет вашим потребностям. Вот код для измерения того, сколько времени занимает foo ():

public class Benchmark1 extends SimpleBenchmark {
  public void timeFoo(int reps) {
    for (int i = 0; i < reps; i++) {
      foo();
    }
  }
}

Ни API, ни сам инструмент не являются особенно стабильными. Мы даже не готовы получать сообщения об ошибках или запросы функций! Если я вас еще не напугал, я предлагаю вам взять Штангенциркуль за спин.

1 голос
/ 24 мая 2015

У Oracle теперь есть JMH. Он не только написан членами команды JIT (которые возьмут на себя большую часть работы по написанию хороших микро-тестов), но также имеет и другие полезные функции, такие как подключаемые профилировщики (включая те, которые будут печатать сборку ваших горячих точек с время процессора).

Распечатывает таблицы. Не уверен насчет графиков. Тесты могут быть настроены с переменными параметрами. Документация довольно хорошая.

Легко настроить и начать работу. Я интегрировал его с JUnit, но разработчики предоставляют для начала архетип Maven.

...