Чтобы ответить на этот вопрос, мы должны понимать тест производительности XCodeTest. Тестирование будет, по существу, записывать следующее два свойства во время полного тестового прогона:
- среднего результат измерений пробега 10 тестов
- стандартного отклонения (с указанием разброса измерений) эти испытания работает
(авто-расчетные) базовый уровень задаются из предыдущего теста, и тест потерпит неудачу, если какие-либо из этих двух условий не выполняется:
- Avera ge над пробным прогоном не должны увеличиваться более чем на 10% от данного базового среднего значения (где базовый уровень зависит от конфигурации и сохраняется в источнике).
- Стандартное отклонение не должно превышать заданный процент, скажем
max_STDDEV%
среднего. Значение max_STDDEV
установлено по умолчанию как 10%, которое может быть изменено в всплывающем окне «Результат производительности».
Из приведенных выше правил, мы понимаем, что причина того, что тесты, казалось бы, не удалось при запуске «слишком быстро» не из-за прохождения специфично нижнюю границу значения (0.5с), а то, что распространяется из измерения становятся слишком большими, что не соответствует стандартным условиям отклонения 2. выше.
Не так хороший способ, чтобы попытаться выкупить это было бы увеличить максимально допустимое значение стандартного отклонения для измерений (max_STDDEV
), но это рискованно, как только опираясь на среднем состояния 1. позволил бы для испытаний даже для в следующем сценарии (среднее значение равно базовой линии (1), но с большим std dev, равным 40%).
(изображение из первой ссылке ниже, WWDC 2014 сессия)
С точки зрения тестирования производительности, вы хотите, чтобы убедиться, что для тестирования реализаций и алгоритмы, которые имеют несколько детерминированный характер, так что цель теста может заключаться в выявлении обновлений языка/API обновлений или новых реализаций кода.Если ваш сценарий тестирования действительно такой, как выше, он может быть уместным тщательно изучить его и, возможно, поднять максимально допустимое стандартное отклонение после тщательного анализа. Например. для стохастического алгоритма можно было бы разрешить большое стандартное отклонение, больше полагаясь на среднюю производительность. Испытание на опасность, например. Однако стохастические алгоритмы с большим разрешенным stddev состоят в том, что только 10 тестов могут оказаться недостаточными для снижения потерь производительности.
Смотрите также: