Тест производительности XCode всегда приводит к огромному времени с первой попытки
Я внедряю тест производительности для приложения iOS, и из этого вытекает странный результат, и я не знаю почему.
Поскольку тест производительности XCode выполняется с заданным кодом 10 раз, тестовый запуск на моем компьютере всегда приводит к такому результату, что первая попытка выполняется в огромном количестве времени по сравнению с другими 9 попытками.
Задания, которые я хочу протестировать, очень просты: они проходят по заданному массиву и исследуют с определенными условиями. Нет никакого сетевого подключения, манипулирования массивами или повторного использования предыдущих переменных.
Тестовые коды, которые я написал, похожи на следующие (все они приводят к одинаковому поведению).
а. Инициализируйте переменные вне блока измерения
- (void)testSomething {
// do some initialization
[self measureBlock:^{
// run code to test performance
}];
}
б. Инициализируйте переменные внутри блока меры
- (void)testSomething {
[self measureBlock:^{
// do some initialization
// run code to test performance
}];
}
с. Инициализировать переменные в -setUp
и использовать их в тестовом методе
- (void)setUp {
// do some initialization here, and capture the pointers as properties
}
- (void)testSomething {
[self measureBlock:^{
// run code to test performance, using properties initialized in setUp
}];
}
- (void)tearDown {
// clean up properties
}
Результаты очень странные, а остальные 9 попыток кажутся ненадежными из-за количества первых попыток. Почему первая итерация занимает так много времени?