了解 Xcode 中的 Instruments,测试泄漏

Posted

技术标签:

【中文标题】了解 Xcode 中的 Instruments,测试泄漏【英文标题】:Understanding Instruments in Xcode, testing for leaks 【发布时间】:2012-01-05 02:36:07 【问题描述】:

我刚开始使用 Instruments,这是一个很好的小工具,用于测试内存分配/泄漏以及所有这些很棒的东西。但我对它的工作原理感到很困惑......我一直在寻找解释如何使用它的教程,但没有教程解释如何使用它。

我将尝试解释这一点:我将其设置为每当我运行我的 Xcode 应用程序时,Instruments 都会跟踪所有内容。但是仪器记录的东西对我来说毫无意义。

发现了一个泄漏,然后它开始泄漏字节。它说泄漏的对象是 _NSCFString 和其他一些类似的东西。这是截图

我的问题是,我该如何解释?如果有教程可以解释这一点,请留下答案,或向我解释。

【问题讨论】:

您的屏幕截图显示的是 Allocations 工具的输出,而不是 Leaks 工具的输出。您可能希望使用 Leaks 仪器的输出制作新的屏幕截图。 【参考方案1】:

了解如何使用 Instruments 的最佳方式是观看 ios/macOS Development Essential/Advanced/Foundation 视频以及有关该主题的 WWDC 会议视频。

您可以在过去的WWDC Session Videos 找到一个列表以观看。他们不需要开发者帐户即可访问。

iPhone 基金会开发视频:

会议 916 - 开始使用仪器

WWDC 2009:

会话 414 - 使用 Instruments 优化 iPhone 性能

WWDC 2010:

会议 304 - 仪器的新功能 会话 306 - 使用仪器自动化用户界面测试 第 309 课 - 使用仪器进行高级性能分析 会议 311 - 使用仪器进行高级内存分析

WWDC 2011:

会议 310 - 仪器的新功能 会议 312 - 使用仪器优化 iOS 性能和功耗

WWDC 2012:

第 409 课 - 学习工具

WWDC 2014:

第 418 课 - 使用 Instruments 改进您的应用程序

WWDC 2015:

会话 412 - 深入分析

WWDC 2016:

会话 411 - 深度系统跟踪 会话 418 - 在仪器中使用时间分析器

WWDC 2018:

会话 405 - 使用日志记录测量性能 第 407 课 - 实现出色应用性能的实用方法 会话 410 - 创建自定义仪器

WWDC 2019:

第 411 课 - 开始使用仪器 第 414 节 - 开发出色的分析体验 第 421 课 - 在自定义仪器中建模

2020 年技术讲座:

揭秘并消除渲染阶段的障碍 在提交阶段查找并修复问题

【讨论】:

不错的清单,你保持它的方式真是太棒了。 Pity Apple 删除了最早(也是最好的)视频。

以上是关于了解 Xcode 中的 Instruments,测试泄漏的主要内容,如果未能解决你的问题,请参考以下文章

转使用Xcode和Instruments调试解决iOS内存泄露

Xcode 8.3+ 中的 Instruments 选项在哪里?

iOS xcode工具instruments的使用

Xcode Instruments 附加到进程

如何在 Lion 下的 Xcode 4.1 Instruments 中启用 NSZombie?

在 Xcode UIAutomation 和 Instruments 中使用 Javascript 验证按钮对象的存在