为什么使用dispatch_async帮助提高性能呢?

时间:2013-11-09 03:43:12

标签: ios objective-c

我会承认,我在网上找到了这段代码 - 用它 - 并且热潮!我的表现有了很大提升。

我的代码如下:

enter image description here

使用Time Profiler,我发现becomeFirstResponder变得疯狂,在这里显示(它在createOrEditItem中):

enter image description here

所以我点击谷歌并改变它:

enter image description here

Time Profiler甚至没有将其显示为“热门”方法!

我的问题很简单,为什么?这里发生了什么技术魔力?

感谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

当您异步调度代码以在同一个线程上运行时(就像您在示例中所做的那样),您正在安排它在以下的runloop循环中运行。

它无法帮助提高性能,因为它会将代码从一个runloop循环转移到下一个循环,将工作负载分散到多个runloop循环中,使其看起来更平滑,更快速。如果你有来自dummyTextField的副作用成为第一响应者,这也可以解释为什么它似乎更高效,因为副作用再次被推到下一个runloop周期。

相关问题