是否有任何工具或良好的技术可以找出iPhone应用程序中性能瓶颈的位置?

时间:2009-05-23 10:56:58

标签: iphone cocoa-touch uikit core-animation

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

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

2 个答案:

答案 0 :(得分:2)

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

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

您也可以使用Shark进行性能分析,但它并不容易使用。

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

答案 1 :(得分:0)

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

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

在iPhone上的iPhone开发人员门户网站上有一个教程视频: http://developer.apple.com/codingheadstarts/index.html