【发布时间】:2023-03-10 23:40:01
【问题描述】:
有时,我的一个应用在复杂视图中拖动对象时会出现 2-10 秒的延迟。在某些情况下,延迟足以导致等待光标(旋转的死亡披萨)出现。
Time Profiler 没有发现什么特别值得注意的东西——只是在拖动对象时更新视图的预期绘图调用。 (计算量很大,但我发现暂停期间和暂停之间的配置文件没有明显差异。)
内存分析器显示暂停没有什么特别之处。在整个拖累过程中,分配似乎持平。泄漏是干净的。 (我最初的假设是我剥离了太多自动释放的对象,但这似乎不是问题。)
活动监视器表明,在拖动过程中,我几乎用完一个核心来进行所有重绘。这正是我所期望的。
对下一步该去哪里有什么想法吗?
【问题讨论】:
-
是否有任何代码路径接触磁盘?
-
或者如果你的内存使用率很高,一些应用程序内存可能已经换出到磁盘,那么再次访问它需要一些时间......
-
暂停时间从 2 秒到 10 秒不等——我认为即使是大型 VM 命中也太长了。活动监视器未显示任何磁盘使用高峰。
标签: xcode cocoa debugging instruments