skillmake
← marketplace
engineerstoolsha:ceb8cdb98d1f4bebmanual

native-app-performance

Use when working with native app performance: xctrace, Time Profiler, traces, hotspots from steipete/agent-scripts.

Install confidence
curl --create-dirs -fsSL https://skillmake.xyz/i/native-app-performance -o ~/.claude/skills/native-app-performance/SKILL.md
Pinned content
sha:ceb8cdb98d1f4beb
Generated with
manual
Source
github.com

The file served at /api/marketplace/native-app-performance-ceb8cdb9/raw matches this hash. Inspect before install, then copy the command.

3,646 chars · ~912 tokens
---
name: native-app-performance
description: "Use when working with native app performance: xctrace, Time Profiler, traces, hotspots from steipete/agent-scripts."
source: https://github.com/steipete/agent-scripts/tree/main/skills/native-app-performance
generated: 2026-05-27T20:56:01.074Z
category: tool
audience: engineers
---

## When to use

- Using the native-app-performance skill's upstream workflow, guardrails, and local-tool assumptions.
- Auditing commands or operational steps before changing native app performance behavior.
- Needing a compact agent reference for native app performance: xctrace, Time Profiler, traces, hotspots.

## Key concepts

### Quick start (CLI)

1) Record Time Profiler (attach): 2) Record Time Profiler (launch): 3) Extract time samples: 4) Get load address for symbolication: 5) Symbolicate + rank hotspots:.

### Workflow notes

Always confirm you’re profiling the correct binary (local build vs /Applications). Prefer direct binary path for --launch. Ensure you trigger the slow path during capture (menu open/close, refresh, etc.). If stacks are empty, capture longer or avoid idle sections. xcrun xctrace help record and xcrun xctrace help export show correct flags.

### Included scripts

scripts/recordtimeprofiler.sh: record via attach or launch. scripts/extracttimesamples.py: export time-sample XML from a trace. scripts/tophotspots.py: symbolicate and rank top app frames.

### Gotchas

ASLR means you must use the runtime TEXT load address from vmmap. If using a new build, update the --binary path; symbols must match the trace. CLI-only flow: no need to open Instruments if stacks are symbolicated via atos.

## API reference

```
npx skills add steipete/agent-scripts --skill native-app-performance
```

Install the native-app-performance skill from steipete/agent-scripts.

```
npx skills add steipete/agent-scripts --skill native-app-performance
```

```
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --attach <pid>.
```

Command or snippet documented by the upstream native-app-performance skill.

```
# Start app yourself, then attach
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --attach <pid>
```

```
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --launch ...
```

Command or snippet documented by the upstream native-app-performance skill.

```
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --launch -- /path/App.app/Contents/MacOS/App
```

```
scripts/extracttimesamples.py --trace /tmp/App.trace --output /tmp/time-sample.xml.
```

Command or snippet documented by the upstream native-app-performance skill.

```
scripts/extract_time_samples.py --trace /tmp/App.trace --output /tmp/time-sample.xml
```

```
vmmap <pid> | rg -m1 "TEXT" -n.
```

Command or snippet documented by the upstream native-app-performance skill.

```
# While app is running
vmmap <pid> | rg -m1 "__TEXT" -n
```

```
scripts/tophotspots.py --samples /tmp/time-sample.xml \.
```

Command or snippet documented by the upstream native-app-performance skill.

```
scripts/top_hotspots.py --samples /tmp/time-sample.xml \
  --binary /path/App.app/Contents/MacOS/App \
  --load-address 0x100000000 --top 30
```

## Gotchas

- Always confirm you’re profiling the correct binary (local build vs /Applications). Prefer direct binary path for --launch.

---
Generated by SkillMake from https://github.com/steipete/agent-scripts/tree/main/skills/native-app-performance on 2026-05-27T20:56:01.074Z.
Verify against source before relying on details.

File: ~/.claude/skills/native-app-performance/SKILL.md