1

我承认,我在网上找到了这段代码 - 使用它 - 并且繁荣!我有很大的性能提升。

我的代码如下所示:

在此处输入图像描述

使用 Time Profiler,我发现 becomeFirstResponder 快疯了,如图所示(在 createOrEditItem 中):

在此处输入图像描述

所以我打了谷歌并改变了它:

在此处输入图像描述

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

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

谢谢。

在此处输入图像描述

4

1 回答 1

1

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

它对性能的帮助不如将代码从一个 runloop 循环到下一个循环,将工作负载分散到多个 runloop 循环,使其看起来更流畅和更快。如果你有成为第一响应者的副作用dummyTextField,这也可以解释为什么它看起来更高效,因为副作用再次被推到下一个 runloop 循环。

于 2013-11-09T04:13:21.820 回答