有时,我的一个应用程序在复杂视图中拖动对象时会遇到2-10秒的延迟。在某些情况下,延迟足以导致等待光标(旋转的死亡比萨饼)出现。
Time Profiler显示的并没有什么特别之处--只是在拖动对象时更新视图的预期绘制调用。(这是大量的计算,但我在暂停期间和暂停之间的配置文件中看不到明显的区别。)
内存分析器没有显示任何有关暂停的特殊信息。在整个拖累过程中,分配似乎持平。泄漏是干净的。(我最初的假设是我衍生了太多自动释放的对象,但这似乎不是问题所在。)
活动监视器表明,在拖动过程中,我几乎消耗了所有重绘的一个核心。这正是我所期望的。
你知道下一步该往哪里看吗?
发布于 2013-03-06 17:17:59
嗯。也许你可以试着在启用“记录等待线程”的情况下运行Instruments.app。这将向您显示代码正在等待和运行的位置。您可能坐在信号量中或执行一些IO-这些将在此模式中显示出来。

https://stackoverflow.com/questions/15234139
复制相似问题