Bundlerをparallelで動かす方法
こちらのスライドを見ていて22 tips目辺りに記載されていました。
Random Ruby (and Rails) Tips // Speaker Deck
このスライドを見るまでの流れとしては
- Rebuild: Aftershow 53: Because We Are Global (Matz, zzak) を聴く
- Zakkのtalkが面白そう
- Show Notes にある [oedo04] Nobody Knows Nobu / @_zzak - YouTube を見る
- 愛があっていいtalkだなぁと思う
- QAで最後のpatchは何かと聞かれて
このOedo RubyKaigiの別talkで話題にあがったopen-uriのconst_set に対するもの - という話から [oedo04] Random Ruby Tips / @winstonyw - YouTube を見る
といった感じです。
Brighton Ruby Conference のスターウォーズtalkも見てみたい。動画ないかしら。
さて本題
jobsオプション
tips22 にあるように-jの後に数字をつけるだけでokなようです。
bundle install -j4
helpより抜粋
--jobs=[<size>] Install gems parallely by starting size number of parallel workers.
正式には--jobsのようですが-j でも動きます。
やってみたところ
10〜15sくらいかかっていたbundle installが6sほどになりました。 体感として早くなったので嬉しい。
./bundle/config
tips23 にあるようにglobal settingsとできるようです。
❯❯❯ sysctl -n hw.ncpu 4 ❯❯❯ bundle config --global jobs 4 ❯❯❯ cat ~/.bundle/config --- BUNDLE_JOBS: '4'
./bundle/config 知らなかったわ。
余談
rails new したら bunlder が走ってイライラという場合は.railsrc を用意すると幸せになります。
❯❯❯ cat ~/.railsrc
-T --skip-bundle