読者です 読者をやめる 読者になる 読者になる

しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Xcodeビルドを並列にしてみる

Xcodeはデフォルトではビルドを並列に行ってくれません。
今日はビルドの並列設定をしてビルド時間がどのくらい短くなるか調べてみます。

ビルド時間を表示する

Xcode上にビルド時間を表示するようにします。
下コマンドを打ってからXcodeを再起動することで、真ん中上部にビルド時間が表示されるようになります。

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

f:id:llcc:20160116132634p:plain

Macのコア数を確認する

次に下コマンドで自分のMacのコア数を確認しました。

system_profiler SPHardwareDataType

自分のMacはコア数は2のようです。

f:id:llcc:20160116134409p:plain

普通にクリーン & ビルド

普通のビルドをしてみました。
時間は327秒ほどでした。

f:id:llcc:20160116134508p:plain

コンパイルを並列にする

まずはコンパイルの同時実行数を2にします。

defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 2

その結果、コンパイル時間は200秒以下にまで縮みました。

f:id:llcc:20160116134440p:plain

タスク数を4にする

次はタスクを更に増やして4にしてみます。
コンパイル時間は193秒、タスク数2の時とほとんど変わりませんでした。
PCのコア数以上にするのは効果が薄そうです。

defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4

f:id:llcc:20160116134729p:plain

タスク数を16にする

最後にタスク数16も試してみました。
結果は250秒ほどです、逆に遅くなりました。
タスク数が増える事で余計な処理が増えたのではないかと思われます。

f:id:llcc:20160116134850p:plain

参考URL

Xcodeで並列ビルドを行う方法 - Qiita
Swiftのメソッド毎のコンパイル時間を計測してビルド時間を短縮する - Qiita