OC中if-else与三目运算符的效率比较
2019-03-20 本文已影响0人
悄然林静
结论写在最前面:
执行效率差别极小,甚至小于1/100000000s(亿分之一秒)。
核心代码:
NSString *time1 = [NSString mk_currentTimeStampInMiliseconds];
for (int i = 0; i < 100000000; i++) {
cell.view.playButton.hidden = [self.imgSource[indexPath.row] valueForKey:@"videoPath"].length > 1 ? NO : YES;
}
NSString *time2 = [NSString mk_currentTimeStampInMiliseconds];
for (int i = 0; i < 100000000; i++) {
if ([self.imgSource[indexPath.row] valueForKey:@"videoPath"].length > 1) {
cell.view.playButton.hidden = NO;
} else {
cell.view.playButton.hidden = YES;
}
}
NSString *time3 = [NSString mk_currentTimeStampInMiliseconds];
NSLog(@"\ntime1 = %@\ntime2 = %@\ntime3 = %@\n", time1, time2, time3);
打印结果:
执行一亿次的时间
可以看到,同样循环执行一亿次的总时间,if-else仅比三目运算符快1s,更何况其中还有亿次级的取值、赋值操作。