Тест производительности 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 попыток кажутся ненадежными из-за количества первых попыток. Почему первая итерация занимает так много времени?

0 ответов

Другие вопросы по тегам