2017-01-06 3 views
0

Когда я запускаю свои тесты производительности в XCode, я могу настроить базовые линии. Если измерения отличаются от базовых, это не удастся.Как настроить максимальное значение для тестов производительности в Xcode

Например. базовая линия составляет 1 сек. Тест потерпит неудачу в случае:

  • измерение 1.5 сек

  • измерение 0,5 сек

Я хотел бы видеть неудачу только в случае, если измерение медленнее базовой линии (случай 1,5 с). Если это быстрее (случай 0,5 секунды), я счастлив, и я хочу видеть зеленые тестовые примеры. Есть ли способ сделать это? Укажите не базовое, а максимальное значение?

ответ

1

Чтобы ответить на этот вопрос, мы должны понимать тест производительности XCodeTest. Тестирование будет, по существу, записывать следующее два свойства во время полного тестового прогона:

  • среднего результат измерений пробега 10 тестов
  • стандартного отклонения (с указанием разброса измерений) эти испытания работает

(авто-расчетные) базовый уровень задаются из предыдущего теста, и тест потерпит неудачу, если какие-либо из этих двух условий не выполняется:

  1. Avera ge над пробным прогоном не должны увеличиваться более чем на 10% от данного базового среднего значения (где базовый уровень зависит от конфигурации и сохраняется в источнике).
  2. Стандартное отклонение не должно превышать заданный процент, скажем max_STDDEV% среднего. Значение max_STDDEV установлено по умолчанию как 10%, которое может быть изменено в всплывающем окне «Результат производительности».

Из приведенных выше правил, мы понимаем, что причина того, что тесты, казалось бы, не удалось при запуске «слишком быстро» не из-за прохождения специфично нижнюю границу значения (0.5с), а то, что распространяется из измерения становятся слишком большими, что не соответствует стандартным условиям отклонения 2. выше.

Не так хороший способ, чтобы попытаться выкупить это было бы увеличить максимально допустимое значение стандартного отклонения для измерений (max_STDDEV), но это рискованно, как только опираясь на среднем состояния 1. позволил бы для испытаний даже для в следующем сценарии (среднее значение равно базовой линии (1), но с большим std dev, равным 40%).

Large STDDEV (изображение из первой ссылке ниже, WWDC 2014 сессия)

С точки зрения тестирования производительности, вы хотите, чтобы убедиться, что для тестирования реализаций и алгоритмы, которые имеют несколько детерминированный характер, так что цель теста может заключаться в выявлении обновлений языка/API обновлений или новых реализаций кода.Если ваш сценарий тестирования действительно такой, как выше, он может быть уместным тщательно изучить его и, возможно, поднять максимально допустимое стандартное отклонение после тщательного анализа. Например. для стохастического алгоритма можно было бы разрешить большое стандартное отклонение, больше полагаясь на среднюю производительность. Испытание на опасность, например. Однако стохастические алгоритмы с большим разрешенным stddev состоят в том, что только 10 тестов могут оказаться недостаточными для снижения потерь производительности.

Смотрите также:

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

  • Нет связанных вопросов^_^