xcode-compilation-analyzer
Swiftおよび混合言語プロジェクトのビルドタイミングサマリーとSwiftフロントエンド診断を用いてコンパイルのホットスポットを分析し、ソースコードレベルの最適化プランを優先度順に提示します。コンパイルが遅い、型チェックの警告が多い、クリーンビルドに時間がかかる、`CompileSwiftSources`タスクが長い、`warn-long-function-bodies`の出力が気になるといった場合や、Swiftの型チェック速度を改善したい開発者に最適です。
description の原文を見る
Analyze Swift and mixed-language compile hotspots using build timing summaries and Swift frontend diagnostics, then produce a recommend-first source-level optimization plan. Use when a developer reports slow compilation, type-checking warnings, expensive clean-build compile phases, long CompileSwiftSources tasks, warn-long-function-bodies output, or wants to speed up Swift type checking.
SKILL.md 本文
Xcode Compilation Analyzer
コンパイル時間が、単なる一般的なプロジェクト設定ではなくボトルネックに見える場合、このスキルを使用してください。
コアルール
- 証拠から始めてください。理想的には最近の
.build-benchmark/アーティファクトまたは生のタイミング集計出力です。 - 調査中は、永続的なプロジェクト編集よりも分析専用のコンパイラフラグを優先してください。
- 結果を累積コンパイル時間ではなく、期待される 実経過時間 への影響でランク付けしてください。コンパイルタスクが重度に並列化されている場合(コンパイルカテゴリの合計 >> 実経過時間の中央値)、個々のホットスポットを修正しても並列効率が改善される可能性があることに注意してください。ビルド待機時間は短縮されないかもしれません。
- 証拠が並列化されたタスクではなくシリアルボトルネックを指している場合、推奨事項を「コンパイラワークロードを削減(並列)」というラベルで表現してください。「ビルド時間を削減」ではなく。
- 明示的な開発者の承認なしに、ソースまたはビルド設定を編集しないでください。
検査対象
- クリーンビルドとインクリメンタルビルドの
Build Timing Summary出力 - 実行時間の長い
CompileSwiftSourcesまたはファイル単位のコンパイルタスク SwiftEmitModule時間 -- 大規模なモジュールでは1行の変更後に 60秒以上に達する可能性があります。インクリメンタルビルドで支配的な場合、モジュールが大きすぎるか、マクロが多すぎる可能性がありますPlanning Swift module時間 -- インクリメンタルビルドで不釣り合いに大きい場合(モジュール当たり最大30秒)、予期しない入力無効化またはマクロ関連のリビルドカスケードを示唆しています- ad hoc 実行(以下のフラグ付き):
-Xfrontend -warn-long-expression-type-checking=<ms>-Xfrontend -warn-long-function-bodies=<ms>
- より詳細な診断フラグ(徹底的な調査用):
-Xfrontend -debug-time-compilation-- ファイル単位のコンパイル時間(最も遅いファイルをランク付けするため)-Xfrontend -debug-time-function-bodies-- 関数単位のコンパイル時間(フィルタリングなし、閾値ベースの警告フラグを補完)-Xswiftc -driver-time-compilation-- ドライバレベルのタイミング(ドライバオーバーヘッドを分離するため)-Xfrontend -stats-output-dir <path>-- コンパイル単位ごとの詳細コンパイラ統計(JSON)(根本原因分析用)
- ブリッジング作業を増やす Swift と Objective-C が混在するサーフェス
分析ワークフロー
- 主な問題が広範なコンパイルボリュームなのか、それとも少数の極端なホットスポットなのかを特定してください。
- タイミング集計カテゴリを解析し、最大のコンパイル貢献者をランク付けしてください。
- 診断スクリプトを実行して、型チェックのホットスポットを表面化させてください:
これにより、ミリ秒の閾値を超える関数と式のランク付きリストが生成されます。診断アーティファクトをソース検査と並行して使用して、最も高コストのファイルから最初に焦点を当ててください。python3 scripts/diagnose_compilation.py \ --project App.xcodeproj \ --scheme MyApp \ --configuration Debug \ --destination "platform=iOS Simulator,name=iPhone 16" \ --threshold 100 \ --output-dir .build-benchmark - 証拠を具体的な推奨リストにマッピングしてください。
- コードレベルの提案をプロジェクトレベルまたはモジュールレベルの提案から分けてください。
Apple が導き出したチェック
まずこれらのパターンを探してください:
- 高コストの式における明示的な型情報の欠落
- 型チェックが困難な複雑なチェーンまたはネストされた式
AnyObjectとして型付けされたデリゲートプロパティ(具体的なプロトコルの代わりに)- 肥大化した Objective-C ブリッジングヘッダーまたは生成された Swift-to-Objective-C サーフェス
- フレームワーク修飾をスキップしてモジュールキャッシュの再利用を逃すヘッダインポート
- サブクラス化されない
finalが欠落したクラス - 内部専用シンボルに過度に広いアクセス制御(
public/open) - サブビューに分解すべき巨大な SwiftUI
bodyプロパティ - 中間的な型注釈のない長いメソッドチェーンまたはクロージャ
レポート形式
各推奨事項について、以下を含めてください:
- 観察された証拠
- 影響を受ける可能性の高いファイルまたはモジュール
- 期待される実経過時間への影響(例:"クリーンビルドを約2秒削減することが期待されます" または "並列コンパイル作業を削減しますが、ビルド待機時間を削減する可能性は低いです")
- 信頼度
- 適用前に承認が必要かどうか
証拠がソースではなくプロジェクト設定を指している場合は、 にその SKILL.md を読んで同じプロジェクトコンテキストにワークフローを適用することで引き継いでください。xcode-project-analyzer
推奨戦術
- 永続的なビルド設定の変更を推奨する前に、ビルドコマンドを通じた ad hoc フラグ注入を提案してください。
- 巨大なビュービルダー、クロージャ、または結果ビルダー式を、より小さい型付き単位に絞り込むことを優先してください。
- 明示的なインポートとプロトコル型付けを、コンパイラの検索空間を削減する場合に推奨してください。
- 混在言語境界が Swift 構文だけではなく、本当の問題である場合に呼び出してください。
追加リソース
- 詳細な監査チェックリストについては、
references/code-compilation-checks.mdを参照してください。 - 共有推奨構造については、
references/recommendation-format.mdを参照してください。 - ソース引用については、
references/build-optimization-sources.mdを参照してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- avdlee
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/avdlee/xcode-build-optimization-agent-skill / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。