Xcode性能测试总是在第一次尝试时产生巨大的时间

时间:2017-08-24 19:41:13

标签: ios objective-c xcode unit-testing performance-testing

我正在为iOS应用程序实现性能测试,并且从中获得了一个奇怪的结果,并且不知道为什么。

由于Xcode性能测试运行代码10次,我的机器上的测试运行总是会导致第一次尝试与其他9次尝试相比在大量时间内运行。

Performance test result

我想测试性能的作业非常简单,它遍历给定的数组并在某些条件下进行调查。没有网络连接,数组操作或重用以前的变量。

我写的测试代码如下(所有这些都导致相同的行为)。

一个。初始化度量块之外的变量

- (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 个答案:

没有答案