Xcode Build Benchmark

Misura i tempi di build pulita, pulita con cache e incrementale di Xcode in un artefatto JSON

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

Richiede configurazione ★ 7.6/10

Xcode Build Benchmark — Misura i tempi di build pulita, pulita con cache e incrementale di Xcode in un artefatto JSON

Cosa fa

Esegue benchmark ripetibili di xcodebuild per uno schema — 3 build pulite, 3 build a zero modifiche, build incrementali opzionali con touch-file, più una fase di pulizia con cache quando COMPILATION_CACHE_ENABLE_CACHING è attivo — e scrive JSON con timestamp più log raw in .build-benchmark/. Riporta mediane, min/max e le categorie dominanti di build-timing-summary invece di una singola esecuzione più veloce. Si attiva quando uno sviluppatore chiede di misurare i tempi di build di Xcode, vuole una baseline prima/dopo, o chiede se le build sono diventate più veloci o più lente.

Rapporto di test

Questa macchina ha solo Command Line Tools (`xcodebuild -version` errori: "requires Xcode"), quindi nessuna build iOS reale potrebbe essere benchmarkata — quindi outputMeasured=false. Per verificare comunque il meccanismo ho messo uno stub `xcodebuild` su PATH che emette un falso Build Timing Summary e ho eseguito `scripts/benchmark_builds.py` end-to-end: uscita 0, 12 log raw più un JSON con timestamp scritti nella directory di output, fase di pulizia con cache rilevata automaticamente da COMPILATION_CACHE_ENABLE_CACHING=YES, mediane/min/max calcolate per tipo di build, e il parser dei tempi ha correttamente diviso "SwiftCompile (412 tasks) | 128.412 seconds" in name/seconds/task_count. Un difetto concreto: l'esecuzione predefinita (senza --touch-file) tagga le esecuzioni `build_type: "zero-change"`, il che fallisce gli schemi della skill stessa schemas/build-benchmark.schema.json (l'enum è clean|cached-clean|incremental) — jsonschema ha rifiutato l'artefatto generato. Gli script sono network-free senza curl|sh, base64 o testo di iniezione; l'unico rischio è `shutil.rmtree` su un --derived-data-path fornito dall'utente durante la fase di pulizia con cache.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

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

Comandi e prompt di esempio

  • /xcode-build-benchmarkMisura i tempi di build pulita, pulita con cache e incrementale di Xcode in un artefatto JSON

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

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