概要
Linuxではnprocコマンドを利用すると、利用出来るCPUの数を表示出来るので
make -j $(nproc) ...
的なコマンドが利用出来るのですが、先ほど試した所OSXには標準でついていないコマンドのようでした。
代替コマンドも無かったので、OSXで使えるnproc代替コマンドをbashとgolangで作ってみました。
新Bashスクリプト 2015-8-22 16:00追記
下の旧Bashスクリプトよりも速いのでこちらを推奨。
動かない場合は下のを使ってみてください。
nproc.sh
# !/bin/bash
getconf _NPROCESSORS_ONLN
旧Bashスクリプト
nproc.sh
# !/bin/bash
system_profiler SPHardwareDataType | grep "Total Number of Cores" | awk '{print substr($5, 1)}'
system_profilerはそのまま実行すると、出力が多すぎて糞重いのですが引数にプロファイルのタイプを指定すると、割と軽快に動作してくれます。
プロファイルタイプのリストは
system_profiler -listDataTypes
で一覧が取得出来ます。
ファンクション化して読み込むなり、PATHの通ったディレクトリに放り込んでください。
Golangスクリプト
nproc.go
package main
import (
"runtime"
)
func main() {
println(runtime.NumCPU())
}
Go言語は本当にシンプルですね。
ビルドしてPATHの通ったディレクトリに突っ込むと幸せになれるかもしれません。
あまり使う機会は無いかもしれませんが、Linuxと同じように使いたい場合や共用スクリプトに利用したい場合活用下さい。