gpt4 book ai didi

ios - 在队列上运行一个空 block 的开销是多少

转载 作者:可可西里 更新时间:2023-11-01 04:32:49 25 4
gpt4 key购买 nike

我意识到我在排队很多调用空方法的 block 。在调试器中,当所有 block 都为空时,似乎发生了很多事情。

空 block 对性能有实际影响吗?

最佳答案

开销应该可以忽略不计:您可以使用 Instruments 和一个简单的程序来检查这一点:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
void (^b)(void) = ^{ };
double d = 2.0;

for(int i = 0; i < 10000000; ++i) {
dispatch_sync(q, b);
d = d * 1.5 - 1.0;
}
NSLog(@"d = %.3f", d);
}
return 0;
}

正如您在 Instruments 堆栈跟踪中看到的那样,调用需要 40 毫秒才能对一个空 block 进行 1000 万次同步调用。开销不大。

enter image description here

关于ios - 在队列上运行一个空 block 的开销是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com