ios – 在队列上运行空块的开销是多少

ios – 在队列上运行空块的开销是多少,第1张

概述我意识到我正在排队调用空方法的很多块.在调试器中,当真正所有块都为空时,它看起来很多. 空块有没有真正的性能影响? 开销应该可以忽略不计:您可以使用Instruments和一个简单的程序来检查: #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { 我意识到我正在排队调用空方法的很多块.在调试器中,当真正所有块都为空时,它看起来很多.

空块有没有真正的性能影响?

解决方法 开销应该可以忽略不计:您可以使用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堆栈跟踪中所看到的,对于空块的10百万次同步调用,调用需要40ms.这没有多少开销.

总结

以上是内存溢出为你收集整理的ios – 在队列运行空块的开销是多少全部内容,希望文章能够帮你解决ios – 在队列上运行空块的开销是多少所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存