Which Instruments do you use most, and why?
The core tools worth naming
1. Time Profiler — probably the single most-used one. Samples the call stack across all threads. Default first stop for any performance complaint.
2. Allocations — for memory growth and footprint investigation. Repeat a suspected flow and watch whether object count returns to baseline.
3. Leaks — specifically for confirmed retain cycles, distinct from just “count is growing.”
4. The Memory Graph Debugger (technically Xcode, not Instruments proper) — faster for a quick “is this deallocating” check, visual graph makes the retain chain obvious.
5. Points of interest / signposts (os_signpost) — for custom, app-specific tracing of multi-stage async pipelines.
A good closing line tying it together
“In practice my workflow is usually Time Profiler first to find where time is going, Allocations if the symptom is memory rather than CPU, and Leaks or the Memory Graph Debugger once I have a specific suspect to confirm. I’d rather reach for the narrowest tool that answers the specific question I have than run a heavyweight trace and hope something jumps out.”
Why this structure works
- Names concrete tools with specific, differentiated purposes
- Shows the diagnostic sequence (symptom → tool → narrowing down)
- Includes a custom-instrumentation example, signaling depth beyond default tooling
- Closes with a workflow philosophy, not just a tool list