← ClaudeAtlas

ios-performance-engineeringlisted

Measure and fix iOS/macOS performance — Instruments (Time Profiler, Allocations, SwiftUI instrument, Hangs), os_signpost, MetricKit field telemetry, XCTMetric baselines, launch-time optimisation, memory footprint, binary size. Invoke when diagnosing slowness/hitches/high memory, setting up CI perf baselines, wiring MetricKit, or asking "why is my app slow / using too much memory / large".
wei18/apple-dev-skills · ★ 0 · API & Backend · score 70
Install: claude install-skill wei18/apple-dev-skills
# iOS Performance Engineering ## When to invoke - Diagnosing UI slowness, scroll hitches, or app hangs. - Investigating high memory usage, leaks, or large binary size. - Wiring MetricKit to receive field performance data from real devices. - Setting up `XCTMetric` / `measure {}` baselines in CI. - Deciding whether to move work off `@MainActor` and how to do it safely. - Evaluating launch time before a release. ## Instruments — the primary measurement tool Never guess at a performance problem; profile first. Instruments ships with Xcode. Key templates: **Time Profiler** — samples the call stack at ~1 kHz. Reveals which functions consume CPU time. After recording, invert the call tree and hide system libraries to surface your own hot paths. A function taking >5 ms on the main thread in an interactive path is a candidate for offloading. **Allocations** — tracks every heap allocation. Use the "Generation" feature: take a snapshot before an action, perform the action repeatedly, take another snapshot, and diff. Any allocation that grew unboundedly across generations is a leak or an accumulation bug. The "Leaks" instrument detects reference cycles automatically but misses logical leaks (objects kept alive longer than needed). **SwiftUI instrument** — records View body invocation counts, `@State` change propagation, and diffing cost. Available from Xcode 15+. A body that fires more than expected usually means a dependency is too coarse (e.g. observing the whole model when onl