こんにちは、現役沖縄フリーランスエンジニアの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.
https://bundler.io/man/bundle-install.1.htmlbundler.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:
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年 |