並列処理の話。
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コアでしか演算しねぇからな?
って話らしい。
とっても早く言って欲しかった感じ。