2012-02-27 1 views
0

Я хочу сравнить время отклика между различными услугами, которые я сделал. Я слышал о скобе, так что я решил использовать его в очень простом способе сделать звонки и измерять их с некоторыми функциями, как, что:Использование суппорта для тестирования сервисов REST ... или нет?

public void timeCallingService(int reps) { 
    String url = "http://localhost:8080/myservice/rest/"+size; 
    for (int i = 0; i < reps; i++) { 
     new Client(url); 
    } 
} 

где размер данного параметром для суппорта и клиент класса I писал, который просто позвоните в службу и проверьте, нормально ли ответ на состояние.

Все хорошо для некоторых услуг, которые занимают слишком много времени, чтобы ответить, кроме работы, поэтому у меня есть ошибка в скобе:

Error: Runtime 1.06027641E11ns/rep out of range 0.1-1.0E10 

Я пытался играть с некоторыми параметрами, как warmupMillis и runMillis, но это не делает похоже, работают.

Итак:

  1. есть ли простой способ решить мою проблему?
  2. Если нет, то какой эталонной рамки я могу использовать для сравнения, учитывая тот факт, что я не хочу ничего сложного?

ответ

3

Приносим извинения за это. У Caliper 0.5 есть такие причуды, как это, но Caliper 1.0, который мы работаем (a), менее анально-ретентивен относительно того, что он ожидает увидеть, когда это так, (b) делает множество настраиваемых значений (например, интервал времени , вы можете сделать это дольше 1 секунды), и (c) также позволяет подключать другой измерительный прибор, если логика MicrobenchmarkInstrument просто не работает для вас.

К сожалению, я не могу обещать дату выпуска. :(

+0

Хорошо, я, наконец, изменил значение upperBound в TimeMeasurer.java (строка 81), и мой тест, похоже, хорошо работает;) –

0

Суппорт, используемый в TimeMeasurer.class (см. Исходные строки TimeMeasurer.java 80-84) ограничения на определение допустимого времени. Эти ограничения нижеBound (0,1 нс) и upperBound (10 секунд). чем upperBound или любая более быстрая мера, чем lowerBound, бросает RuntimeOutOfRangeException. Поэтому, если вы действительно зациклились на этом, чем пытаться скомпилировать этот класс с другими лимитированными границами, или было бы лучше написать об этом автору и сообщить о том, чтобы добавить параметр runtime чем (например, для установки upperBound). Кажется (и может быть, правда, что это действительно так), этот инструмент измерения предназначен для измерения быстрых процессов, когда наносекунды импотенты для анализа. И когда вы измеряете что-то, и это получается больше, чем 10 секунд может быть вы должны использовать другой измерительный инструмент ... Во всяком случае есть решение ...

Смежные вопросы