使用Instruments测试iOS应用程序开发的最佳实践

时间:2012-05-06 10:33:31

标签: objective-c ios xcode testing instruments

我想知道提供给客户的专业应用程序是如何优雅,流畅,少或不应用程序崩溃的。因为我总是看到问题主要是关于内存泄漏,NSZombie还是表现不够好。

我认为使用Instruments Tool解决一些问题很棒。但我只是熟悉内存泄漏和僵尸模板。当然,我认为还有其他有趣的工具可以更好地跟踪和修复我们的应用程序。 (系统使用,自动化测试等。任何想法?)

我的问题:使用Google提升应用程序的最佳策略是什么?推荐工具模板或任何建议?

让我们分享您的经验并进行讨论!

* 更新:* 我可以提出更多问题,我应该将此问题编辑到维基吗?我们可以分享战略应该不仅仅是个问题。

4 个答案:

答案 0 :(得分:3)

我主要(大约98.2%的时间)使用Leaks and Allocations模板。此外,许多人不知道 - 但在Xcode 4中,您可以使用Xcode中的乐器启动应用程序。从顶部菜单中,选择产品 - >轮廓。

此外 - 即使使用ARC,您仍应该清楚自己如何使用内存以及如何分配对象。很多时候,ARC做得很好,但是我的代码中的一个小的编程更改导致分配的对象少得多。 ARC在编写代码时会帮助您,但它不是不对您的应用程序进行测试和分析以使其尽可能高效的借口。

答案 1 :(得分:1)

是的,仪器至关重要。 ARC减轻了一些最严重的内存问题。分析(在产品菜单上)也不受欢迎。

在App Frameworks部分的WWDC 2011中查看程序123,提高应用稳定性,其中讨论了可能影响代码稳定性的其他问题(我特别认为测试的讨论很好)。

最后,优雅不是工具的产物,而是良好的设计。制作优雅的产品需要花费大量的工作。接受HIG及其中包含的更广泛的哲学主题。此外,请与您尊重的开发人员进行代码和设计审核。

答案 2 :(得分:1)

CPU采样器(Time Profiler)将告诉您程序在哪里花费执行时间。如果您的应用程序“慢”,此工具通常可以帮助您确定消费者的问题时间,以及(如果您了解您的程序)如何解决这些问题。

定期运行此仪器,以了解您的程序以及它们所依赖的抽象背后的实现 - 不要等到问题出现。


您可以使用CPU采样器记录程序线程的调用堆栈。这是以高频率记录的。采样器显示的信息包括占用时间最多的功能以及采用的时间百分比。您可以向其呼叫者收取库或功能,有效地选择您想要的粒度,或隐藏您无法改变的内容。一旦找到了您感兴趣的函数/方法,就可以在Instruments中查看源文件,它将分解您需要的时间。

答案 3 :(得分:0)

Apple推出了一项称为自动引用计数(ARC)的甜蜜功能,​​可以为您提供几乎所有内存控制功能。您只需要设置属性的弱/强参数。它消除了几乎所有内存泄漏问题。 至于工具 - 我不知道除仪器之外的任何其他应用程序。仪器有所有......仪器:)我需要,用它做测试。