Mac Developer Library


Instruments User Guide

About Instruments

image: ../Art/instruments_app_icon_2x.png

Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your OS X and iOS apps, processes, and devices in order to better understand and optimize their behavior and performance. Incorporating Instruments into your workflow from the beginning of the app development process can save you time later by helping you find issues early in the development cycle.

In Instruments, you use specialized tools, known as instruments, to trace different aspects of your apps, processes, and devices over time. Instruments collects data as it profiles, and presents the results to you in detail for analysis.

Unlike other performance and debugging tools, Instruments allows you to gather widely disparate types of data and view them side by side. This makes it easier to identify trends that might otherwise be overlooked. For example, your app may exhibit large memory growth caused by multiple open network connections. By using the Allocations and Connections instruments together, you can identify connections that are not closing and thus resulting in rapid memory growth.

By using Instruments effectively, you can:

  • Examine the behavior of one or more apps or processes

  • Examine device-specific features, such as Wi-Fi and Bluetooth

  • Perform profiling in a simulator or on a physical device

  • Create custom DTrace instruments to analyze aspects of system and app behavior

  • Track down problems in your source code

  • Conduct performance analysis on your app

  • Find memory problems in your app, such as leaks, abandoned memory, and zombies

  • Identify ways to optimize your app for greater power efficiency

  • Perform general system-level troubleshooting

  • Automate testing of your iOS app by running custom scripts to perform a sequence of user actions and replaying them to reliably reproduce those events and collect data over multiple runs

  • Save instrument configurations as templates

Although it’s embedded within and may be used with Xcode, Instruments is a separate app, which may be used independently as needed.