我正在为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次尝试似乎并不可靠,因为首次尝试次数。为什么第一次迭代需要更长时间?