Xcode Build Benchmark

Måler Xcode clean, cached-clean og inkrementelle build-tider til et JSON-artefakt

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

Virker med opsætning ★ 7.6/10

Xcode Build Benchmark — Måler Xcode clean, cached-clean og inkrementelle build-tider til et JSON-artefakt

Hvad det gør

Kører gentagelige xcodebuild-benchmarks for et skema — 3 clean builds, 3 zero-change builds, valgfri touch-file inkrementelle builds, plus en cached-clean fase, når COMPILATION_CACHE_ENABLE_CACHING er slået til — og skriver tidsstemplet JSON plus rå logs til .build-benchmark/. Rapporterer medianer, min/max og de dominerende build-timing-summary kategorier i stedet for en enkelt hurtigste kørsel.

Testrapport

Denne maskine har kun Command Line Tools (`xcodebuild -version` fejl: "requires Xcode"), så ingen reel iOS-build kunne benchmarkes — deraf outputMeasured=false. For at verificere maskineriet alligevel placerede jeg en stub `xcodebuild` på PATH, der udsender en falsk Build Timing Summary og kørte `scripts/benchmark_builds.py` ende til ende: exit 0, 12 rå logs plus en tidsstemplet JSON skrevet til output-mappen, cached-clean fase auto-detekteret fra COMPILATION_CACHE_ENABLE_CACHING=YES, medianer/min/max beregnet pr. build-type, og timing-parseren splittede korrekt "SwiftCompile (412 tasks) | 128.412 seconds" i name/seconds/task_count. En konkret defekt: standardkørslen (ingen --touch-file) tagger kørsler `build_type: "zero-change"`, hvilket fejler skill'ens egen schemas/build-benchmark.schema.json (enum er clean|cached-clean|incremental) — jsonschema afviste det genererede artefakt. Scripts er netværksfri uden curl|sh, base64 eller injektionstekst; den eneste faldgrube er `shutil.rmtree` på en brugerleveret --derived-data-path under den cached-clean fase.

Testet: 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

Kommandoer og eksempelprompter

  • /xcode-build-benchmarkMåler Xcode clean, cached-clean og inkrementelle build-tider til et JSON-artefakt

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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