スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス4期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログやプログラミング技術、沖縄移住やリモートワークライフについて発信しています。

【Rails】bundle install --jobs(-j)に指定するジョブ数を動的に設定するため、最大値について調べた

【Rails】bundle install --jobs(-j)に指定するジョブ数を動的に設定するため、最大値について調べた


こんにちは、現役沖縄フリーランスエンジニアのmahです。


今回は、


  • 【Rails】bundle install --jobs(-j)に指定するジョブ数を動的に設定するため、最大値について調べた


について書いていきます。


bundle install に --jobs=n or -j n オプションを渡すと、

並列でgemをinstallするので高速化が可能。


技術記事や実プロジェクトでは --jobs=4-j 4 とされていることが多いです。(デフォルトの初期値はプロセッサ数)

bundle install --jobs=, -j
The maximum number of parallel download and install jobs. The default is the number of available processors.

bundler.io


しかし、

なぜ 4が指定されているのかは今まで気にしたことがありませんでした。


--jobsの最大値が 4 だからなのか、

ただ単におまじない的に 4 としているのか。


ドキュメントを見ても、

--jobs で指定できるジョブ数の最大値についての記述はありません。


「これって4でなくとも、動的にジョブ数を設定できるのでは?」

と思いさらに調べていると、

「指定可能なジョブ数はCPU のコア数と使用可能なメモリによって異なる」旨の記述を見つけました。

It all depends on how many cores your CPU has and the available memory. Assuming you have decent memory amount, you can use the number of cores as your -j parameter. If you are on linux, you can run this command to list your cores:

stackoverflow.com


CPUのコア数は getconf _NPROCESSORS_ONLN で取れます。

// コマンドの実行結果を出力するため、バッククォート(``)で囲う
$ echo `getconf _NPROCESSORS_ONLN`
=> 12


よって、

$ bundle install --jobs `getconf _NPROCESSORS_ONLN`

とすれば、

CPUのコア数で動的に bundle install --jobs のジョブ数を設定可能そうです。


ちなみに、

Macのプロセッサ数などは $ system_profiler SPHardwareDataType とすれば調べられます。

$ system_profiler SPHardwareDataType
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro16,1
      Processor Name: 6-Core Intel Core i7
      Processor Speed: 2.6 GHz
      Number of Processors: 1
      Total Number of Cores: 6
      L2 Cache (per Core): 256 KB
      L3 Cache: 12 MB
      Memory: 16 GB




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★


エージェント 詳細 最高単価/月 設立
フリエン(furien) 評判をチェック 180万円/月 2011年
ギークスジョブ 評判をチェック 180万円/月 2011年
フォスターフリーランス 評判をチェック 230万円/月 1996年
pe-bank(pebank) 評判をチェック 200万円/月 1989年
Midworks(ミッドワークス) 評判をチェック 200万円/月 2013年
レバテックフリーランス 評判をチェック 140万円/月 2005年