如果在线程调用中存在性能问题并且我想优化它,我会在iOS上搜索异步调用的更好性能。
[self performSelector:@selector(switch) withObject:nil afterDelay:delay inModes:@[NSRunLoopCommonModes]];
有一个GCD调用,如:
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(delay, dispatch_get_main_queue(), ^(void){
[self switch];
});
表现更好?或者任何人都有想法?我猜一个计时器只会更胶水......
答案 0 :(得分:2)
如果您的应用中存在性能问题,则不在此处。有两种可能性:
您正在进行大量此类调用,在这种情况下,调度机制的性能实际上是一个问题。在这种情况下,重做您的应用程序逻辑,这样您就不需要拨打这么多电话!
您没有拨打那么多电话,在这种情况下,与您的代码中的任何问题相比,调度的性能只是一个非问题。
为什么你认为这里有性能问题?
答案 1 :(得分:0)
mytimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(callAfteroneSecond) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:mytimer forMode:NSRunLoopCommonModes];
或
[self performSelectorInBackground:@selector(Fav_function) withObject:nil];