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



我想知道提供给客户的专业应用程序如何如此优雅,流畅,并且较少或没有应用程序崩溃。 因为我总是看到问题主要在于内存泄漏,NSZombie或性能不够好。

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

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

让我们分享您的经验和讨论!

*更新 : * 我可以问更多问题吗,我应该将这个问题编辑到维基吗?毫无疑问,我们可以分享战略。

我主要(大约 98.2% 的时间(使用泄漏和分配模板。 此外,很多人不知道 - 但在 Xcode 4 中,您可以直接从 Xcode 使用仪器启动应用程序。 从顶部菜单中,只需选择产品 ->配置文件。

另外 - 即使在使用 ARC 时,您仍然应该意识到如何使用内存以及如何分配对象。 很多时候,ARC 做得很好,但我的代码中的一个小编程更改导致分配的对象少得多。 ARC 将在编写代码时为您提供帮助,但这并不是不测试和剖析应用程序以使其尽可能高效的借口。

是的,仪器至关重要。ARC 缓解了一些最严重的内存问题。分析(在产品菜单上(也被低估了。

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

最后,优雅不是工具的产物,而是良好设计的产物。制造优雅的产品需要惊人的工作量。拥抱HIG和其中包含的更广泛的哲学主题。此外,与您尊重的开发人员一起进行代码和设计审查。

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

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


您可以使用 CPU 采样器来记录程序线程的调用堆栈。这是以高频率记录的。采样器显示信息,例如花费最多时间的函数以及它们花费的时间百分比。您可以向其调用方收取库或函数的费用,有效地选择所需的粒度,或隐藏无法更改的内容。找到您感兴趣的函数/方法后,您可以在 Instruments 中查看源文件,它将分解您花费这么长时间的时间。

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

最新更新