OC自动释放池在for循环中的性能测试
作者:网络转载 发布时间:[ 2015/6/19 14:27:07 ] 推荐标签:性能测试 软件测试
发现一个有意思的测试结果。
@autoreleasepool 放在for 循环外面,即所有循环结束后才释放里面的延迟对象;而放在里面的话,也是说每次循环都立即释放。
这样保证了for循环时不会突然内存爆表。
但是,性能居然。。。。是放在里面的好点,附上代码,可以亲测玩玩。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"start");
CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
[self test1];
NSLog(@"外 %f", CFAbsoluteTimeGetCurrent() - start);
start = CFAbsoluteTimeGetCurrent();
[self test2];
NSLog(@"内 %f", CFAbsoluteTimeGetCurrent() - start);
NSLog(@"over");
}
- (void)test2 {
for (long i = 0; i < largeNumber; ++i) {
@autoreleasepool {
NSString *str = [NSString stringWithFormat:@"hello - %ld", i];
str = [str uppercaseString];
str = [str stringByAppendingString:@" - world"];
}
}
}
- (void)test1 {
@autoreleasepool {
for (long i = 0; i < largeNumber; ++i) {
NSString *str = [NSString stringWithFormat:@"hello - %ld", i];
str = [str uppercaseString];
str = [str stringByAppendingString:@" - world"];
}
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11