Instruments 是一个强大的、灵活的 性能分析 和测试工具的Xcode工具集的一部分。它的目的是帮助您配置您的OS X和iOS应用程序、进程和设备,以便更好地理解和优化他们的行为和性能。从应用程序开发过程的开始将工具集成到您的工作流中,可以帮助您在开发周期的早期找到问题。
在Instruments中,您使用专门的工具,来跟踪应用程序、进程和设备的不同方面。Instruments收集数据作为它的概况,并向您详细介绍分析结果。
与其他性能和调试工具不同,Instruments允许您收集大量不同类型的数据,并排查看它们。这使得识别可能被忽略的趋势变得更容易。例如,应用程序可能会显示由于多个开放网络连接而导致的大量内存增长。通过使用Allocations 和Connections工具一起,您可以识别不关闭的连接,从而导致快速的内存增长原因。
通过有效地使用Instruments,您可以:
检查一个或多个应用程序或进程的行为
检查设备特定的功能,如Wi-Fi和蓝牙
在模拟器或物理设备上执行概要分析
创建自定义的DTrace仪器分析方面的系统和应用程序的行为
追踪问题在你的源代码
对应用程序进行性能分析
查找应用程序中的内存问题,如泄漏、废弃内存和僵尸
找出优化你的应用程序以提高电源效率的方法
执行一般系统级故障排除
将工具配置保存为模板
虽然它是嵌入在可使用Xcode,Instruments是一个单独的应用程序,这可能需要使用独立。
The Instruments Workflow -->Instruments 的工作流程
Instruments 看起来可能是一个复杂的应用程序。它可以用来收集关于你的应用程序的各种有用信息,并帮助你诊断和解决问题。但是,整个Instruments工作流程相对简单
见图2-1:
At a high level, it consists of the following main phases:
Set up a trace document containing the desired instruments and settings.
Target a device and an app to profile.
Profile the app.
Analyze the data captured during profiling.
Fix any problems in your source code.
在高层次上,它由以下主要阶段组成:
设置包含所需工具和设置的跟踪文档。
目标设备和应用程序配置文件。
应用程序简介。
分析分析过程中捕获的数据。
修正源代码中的任何问题。
Know When to Use Instruments 知道何时使用Instruments
在Xcode中测试你的应用程序的调试,Instruments 提供了应用程序的CPU、内存、能源使用量等高级信息。通常,它们提供了您所需的所有信息,以提高性能并快速解决常见问题。在需要进行更详细的分析时使用工具。
The CPU debugging gauge in Xcode [geɪdʒ] 测量
About This Document
为了帮助您快速找到您需要的信息,该文档被组织成一些侧重于工具的特定方面的部分。
第一个主要部分集中在使用 Instruments App。它涵盖了创建文档、查找工具、完成应用程序、分析数据等功能。到这里来看看如何做一般任务。
后面的部分涉及更专业的任务,比如提高性能、解决内存问题和提高电池寿命。
最后部分为个别 Instrument和模板提供了参考指南,以及额外的资源和参考材料。
先决条件
Background Knowledge 背景知识
在使用Instruments 前,你应该有一个坚实的理解如何Xcode工程(参见Xcode概述),以及关键的应用程序开发的概念,如建立和运行一个应用程序,并提供设备。
您还应该熟悉要执行的分析类型的核心概念。
例如:
- 如果您正在检查内存问题的应用程序,那么您应该知道一些内存管理和潜在的内存问题,比如泄漏和僵尸。
- 如果您正在检查性能问题的应用程序,您应该知道CPU和线程的利用率。
- 如果你要解决电池的问题,你应该知道的事情,哪些会影响电源的种类,如显示亮度、网络接口(GPS、蓝牙、Wi-Fi)的使用,和定时器的使用。
System Requirements 系统要求
安装了Xcode。
如果你计划在iOS设备上配置一个应用程序,你需要提供你的设备。在设备上启动你的应用程序。
备注:
- Instruments is available with Xcode 3.0 and later, and is supported in OS X v10.5 and later.
- Instruments can profile iOS devices running iOS 6 or later.