【问题标题】:Are there any tools or good techniques to find out where the performance bottlenecks are in an iPhone application?是否有任何工具或好的技术可以找出 iPhone 应用程序的性能瓶颈在哪里?
【发布时间】:2009-05-23 10:56:58
【问题描述】:

我的应用程序已经完成了一半。性能不是很好,不知道瓶颈在哪里。尽管我可以继续并开始注释掉可疑的代码行,但我想知道是否有任何工具可以告诉我哪种方法很酷需要多长时间以及接下来会发生什么。堆栈跟踪并没有那么有用。

我有一个奇怪的想法,将堆栈跟踪转换为 GraphViz 图,以直观地查看整个画面。我知道 IBM 的一些人做了类似的事情,生成了堆栈跟踪的可视化图表,这非常令人印象深刻和有意义。在我重新发明轮子之前:是否有一些好的工具或技术可以帮助发现 iPhone OS 的性能瓶颈?

【问题讨论】:

标签: iphone cocoa-touch uikit core-animation


【解决方案1】:

正如 Kenneth 所说,Instruments 是 Cocoa 应用程序性能优化的宝贵工具。可以在here 找到它的用户指南(或在您的 Xcode 文档中)。 Xcode 调试工具的一大优点是它们可以针对在设备上执行的应用程序运行,因此您可以使用 Instruments 在实际硬件上对应用程序进行分析。

在使用 Instruments 时,我发现 CPU 采样器工具可以很好地细分我的应用程序花费最多时间的地方。例如,当我运行 Instruments 并发现它实际上是由于一些浪费的字符串处理例程造成的时,我有一个我认为是缓慢的 SQLite 查询并且正准备优化我所有的 SQLite 交互。

您也可以使用Shark 进行分析,尽管它不那么容易使用。

您可能还对这些问题的答案感兴趣:

【讨论】:

    【解决方案2】:

    使用 Instruments(开发人员工具附带的应用程序)附加到流程并衡量性能。

    有一个名为“核心动画”的预设,这可能是你想要的。

    iPhone 开发者门户网站上有一个关于 Instruments 的教程视频: http://developer.apple.com/codingheadstarts/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多