Xcode Build Benchmark

Misst Xcode Clean-, Cached-Clean- und inkrementelle Build-Zeiten in einem JSON-Artefakt

von AvdLee · AvdLee/Xcode-Build-Optimization-Agent-Skill

Funktioniert mit Setup ★ 7.6/10

Xcode Build Benchmark — Misst Xcode Clean-, Cached-Clean- und inkrementelle Build-Zeiten in einem JSON-Artefakt

Was es kann

Führt wiederholbare xcodebuild-Benchmarks für ein Schema aus — 3 Clean Builds, 3 Zero-Change Builds, optionale Touch-File inkrementelle Builds, plus eine Cached-Clean-Phase, wenn COMPILATION_CACHE_ENABLE_CACHING aktiviert ist — und schreibt zeitgestempeltes JSON plus Rohprotokolle nach .build-benchmark/. Berichtet Mediane, Min/Max und die dominanten Build-Timing-Summary-Kategorien anstelle eines einzelnen schnellsten Laufs. Wird ausgelöst, wenn ein Entwickler fragt, Xcode-Build-Zeiten zu messen, eine Vorher-/Nachher-Baseline wünscht oder fragt, ob Builds schneller oder langsamer wurden.

Testbericht

Diese Maschine verfügt nur über Command Line Tools (`xcodebuild -version` Fehler: „requires Xcode“), daher konnte kein echter iOS-Build gebenchmarkt werden — daher outputMeasured=false. Um die Maschinerie trotzdem zu überprüfen, habe ich einen Stub `xcodebuild` in den PATH gelegt, der eine gefälschte Build Timing Summary ausgibt, und `scripts/benchmark_builds.py` Ende-zu-Ende ausgeführt: Exit 0, 12 Rohprotokolle plus ein zeitgestempeltes JSON in das Ausgabeverzeichnis geschrieben, cached-clean-Phase automatisch erkannt von COMPILATION_CACHE_ENABLE_CACHING=YES, Mediane/Min/Max pro Build-Typ berechnet, und der Timing-Parser teilte „SwiftCompile (412 tasks) | 128.412 seconds“ korrekt in name/seconds/task_count auf. Ein konkreter Defekt: Der Standardlauf (ohne --touch-file) taggt Läufe mit `build_type: "zero-change"`, was das eigene schemas/build-benchmark.schema.json des Skills fehlschlagen lässt (Enum ist clean|cached-clean|incremental) — jsonschema lehnte das generierte Artefakt ab. Skripte sind netzwerkfrei ohne curl|sh, base64 oder Injection-Text; die einzige Falle ist `shutil.rmtree` auf einem vom Benutzer bereitgestellten --derived-data-path während der cached-clean-Phase.

Getestet am: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/AvdLee/Xcode-Build-Optimization-Agent-Skill.git /tmp/xcode-build-benchmark-src
mkdir -p ~/.claude/skills
cp -R /tmp/xcode-build-benchmark-src/skills/xcode-build-benchmark ~/.claude/skills/xcode-build-benchmark
# Requires full Xcode (not just Command Line Tools) and an .xcodeproj/.xcworkspace.
# CLI instead: npx skills add https://github.com/AvdLee/Xcode-Build-Optimization-Agent-Skill --skill xcode-build-benchmark
# Plugin instead: /plugin marketplace add AvdLee/Xcode-Build-Optimization-Agent-Skill
# Run from the project directory:
#   python3 ~/.claude/skills/xcode-build-benchmark/scripts/benchmark_builds.py \
#     --workspace App.xcworkspace --scheme MyApp --configuration Debug \
#     --destination "platform=iOS Simulator,name=iPhone 16" --output-dir .build-benchmark

Befehle & Beispiel-Prompts

  • /xcode-build-benchmarkMisst Xcode Clean-, Cached-Clean- und inkrementelle Build-Zeiten in einem JSON-Artefakt

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • Benchmark our current Xcode build time
  • Compare build times before and after this change
  • Measure how long incremental builds take now