LoginSignup
7
6

More than 5 years have passed since last update.

OSX Yosemiteでmakeコマンド等で使うnprocを実現したい

Last updated at Posted at 2015-08-22

概要

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と同じように使いたい場合や共用スクリプトに利用したい場合活用下さい。

7
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6