並列処理の話。

Goで並列処理を書くときの注意点。


Goで並列処理を書こう!

マルチコアプロセッサマシンで処理効率アップだ!

とか思ってGoで並列処理書いても、今まで分散してくれずやたらと重かったんですよね。


つまり、コアごとに処理を分散してくれなくて、
ひとつのコアで処理されていたので、タスクスイッチ分遅くなってたんだ。

・・・と、思ってたんですよね。


ところがぁ

Effective Goをちゃんと読んでみると、
http://golang.org/doc/effective_go.html#parallel

これの最後の方、

>> import the runtime package and call runtime.GOMAXPROCS(NCPU).


つまり、runtimeパッケージをインポートして、GOMAXPROCSにCPUコア数を入れとけよ、じゃないと1コアでしか演算しねぇからな?
って話らしい。

とっても早く言って欲しかった感じ。