Xcode 如何诊断拖动过程中的意外延迟?

Xcode 如何诊断拖动过程中的意外延迟?,xcode,cocoa,debugging,instruments,Xcode,Cocoa,Debugging,Instruments,在复杂视图中拖动对象时,我的一个应用程序有时会遇到2-10秒的延迟。在某些情况下,延迟足以导致等待光标(死亡)出现 时间探查器并没有显示什么特别的东西——只是在拖动对象时预期的图形调用来更新视图。(这是一个很大的计算量,但我发现暂停期间和暂停之间的轮廓没有明显的差异。) 内存分析器没有显示暂停的任何特殊情况。在整个过程中,分配似乎持平。泄漏是干净的。(我最初的假设是我旋转了太多自动释放的对象,但这似乎不是问题所在。) 活动监视器表明,在拖动过程中,我几乎用光了所有重绘的一个核心。这就是我所期望的

在复杂视图中拖动对象时,我的一个应用程序有时会遇到2-10秒的延迟。在某些情况下,延迟足以导致等待光标(死亡)出现

时间探查器并没有显示什么特别的东西——只是在拖动对象时预期的图形调用来更新视图。(这是一个很大的计算量,但我发现暂停期间和暂停之间的轮廓没有明显的差异。)

内存分析器没有显示暂停的任何特殊情况。在整个过程中,分配似乎持平。泄漏是干净的。(我最初的假设是我旋转了太多自动释放的对象,但这似乎不是问题所在。)

活动监视器表明,在拖动过程中,我几乎用光了所有重绘的一个核心。这就是我所期望的


你知道下一步该去哪里吗?

嗯。也许你可以试着在启用“记录等待线程”的情况下运行Instruments.app。这将向您显示代码正在等待和运行的位置。您可能正坐在一个信号灯中,或者正在执行一些IO操作,这些操作将在此模式下显示


有没有可能有代码路径接触到磁盘?或者如果内存使用率很高,一些应用程序内存可能已经被换到磁盘,那么重新访问它需要一段时间……暂停时间从2秒到10秒不等——我认为这对于大型虚拟机来说都太长了。活动监视器未显示任何磁盘使用率峰值。