如何跟踪阻止主(UI)线程的调用?

时间:2012-12-06 16:56:13

标签: ios performance profiling

我的iOS应用程序存在一些性能问题。特别是,当用户选择特定Core Data支持的UITableView中的项目时,UI更新之前会有一段延迟。由于目前应用程序中的多线程非常少,我猜测我正在某个方法调用,这需要花费太长时间来阻止UI线程。

单步执行代码并不能向我揭示任何内容。 (也许是因为问题出在运行循环的另一次旅行中?不确定......我是一个坚实的iOS开发人员,但在调试和分析工具方面是新手。)

解决这类问题的最佳方法是什么?有些方法可以逐步完成或跟踪线程按顺序执行的操作以及每次调用所需的时间,或其他什么内容?

感谢。

2 个答案:

答案 0 :(得分:0)

查看仪器中的Time Profiler。有关如何使用分析器识别您可能希望放入后台队列的候选方法以避免阻塞主队列的实际演示,请参阅WWDC 2012 - Building Concurrent User Interfaces on iOS

有关“仪器”工具的基本说明,请参阅Instruments User Guide,但我认为WWDC视频是熟悉此特定仪器Time Profiler的更有效方法。此外,如果您从未完成并发核心数据,您可能还希望查看核心数据编程指南的Concurrency with Core Data部分。

答案 1 :(得分:0)

我会说明Rob所说的内容:您可以使用 Time Profiler Instruments 更轻松地找到应用的瓶颈>。 Rob的所有参考资料都特别适合WWDC。我还在mobile tuts中遇到了这个涵盖基础知识的tut