4

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

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

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

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

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

4

4 回答 4

3

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

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

于 2012-05-06T18:53:05.147 回答
1

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

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


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

于 2012-05-07T07:00:30.347 回答
1

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

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

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

于 2012-05-07T06:49:52.117 回答
0

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

于 2012-05-06T11:59:18.730 回答