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

xcodebuild コマンドを使うときは -parallelizeTargets オプションを付けなくでも自動的に並列になる

make で言うところの -j{N} と同じ効果がある気がする。

以下のように書く。

xcodebuild -configuration Debug clean build -parallelizeTargets=8

Jenkins の Xcode Plugin では設定できないので、Custom xcodebuild arguments に設定する。

f:id:s5r:20121212220229p:plain

一応実行しながら Activity Monitor を眺めると clang のプロセスが大量に起動していることが分かる。

追記

どれくらい効果があるか time コマンドで時間計ってみた。

xcodebuild -alltargets -configuration Debug clean build
374.55s user 30.91s system 648% cpu 1:02.51 total

xcodebuild -alltargets -configuration Debug clean build  -parallelizeTargets=
375.23s user 30.96s system 657% cpu 1:01.76 total

全く変わってないというかむしろ遅くなってる。。。

-parallelizeTargets を指定していないときも clang プロセスは複数上がっていることが確認できたので、 CPU のコア数とかから最適なプロセス数を割り出して勝手に並列処理しているのかなあ。