Xcodeのビルド時間を短縮する
Xcodeのビルド時間が気になってきたので
調査してすぐにできそうなものを試してみました。
Xcodeが使用するコア数を設定
Macのコア数を確認
以下のコマンドを実行
$system_profiler SPHardwareDataType Model Name: MacBook Pro Model Identifier: MacBookPro12,1 Processor Name: Intel Core i5 Processor Speed: 2.7 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB…
Total Number of Coresがコア数なのでこの場合のコア数は2です。
Xcodeの設定を変更
上記コマンドで調べたコア数を設定します。
これよりも大きな値を設定しても意味はなく、パフォーマンスが悪化することがあります。
以下のコマンドを実行
$defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 2
Debug Information Formatを変更
SchemeがDebugのときのみ
DWARF with dSYM FileからDWARFに設定を変更します。
dSYMファイルはクラッシュログを調査するのに必要なもので開発時は必要ないです。
CocoaPodsのコンパイルをスキップ
※効果はありますが戻し忘れに注意です。
Product -> Scheme -> Edit SchemeからBuildを選択し
Find Implicit Dependenciesのチェックをはずします。
Podfileを変更してもビルドは走らないので注意しましょう。
CocoaPodsではなくCarthageを使用
Carthageはライブラリを事前にビルドし、フレームワークを作成するのでビルド時間を短縮することができます。
対応していないライブラリ以外はCarthageを使用するのが良さそうです。
試せていませんがSwiftPackageManagerでも効果があるようです。
ビルド時間を確認するには?
以下のコマンドを実行
$defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
Xcode上ではこのようにビルド時間が表示されます。
最後に
設定を少し変更するだけでもビルド時間が改善されました。
Swiftはコードレベルでも改善できることがあるので
パフォーマンスを意識してコードを書くように心がけたいと思います。