次のチュートリアルコラムでは、Golang CPU の使用設定について詳しく説明しますので、困っている方の参考になれば幸いです。 次のテストでは、使用される Go バージョンは 1.8.3 です。Not set
CPU を設定するために runtime.GOMAXPROCS が呼び出されない場合、Golang はすべての CPU コアを使用します。デフォルトでは。
テスト コードは次のとおりです。
package main func main() { go task() go task() go task() go task() select{} } func task(){ for { } }
CPU 使用率の設定
func GOMAXPROCS(n int) int
同時実行時に使用する CPU の数を設定しますたとえば、1 コアのみを使用するように設定します
runtime.GOMAXPROCS(1)
2 コアのみを使用するように設定します
runtime.GOMAXPROCS(2)
テスト コードは次のとおりです。コアを 1 つだけ設定します:
package main import ( "runtime" ) func main() { runtime.GOMAXPROCS(1) go task() go task() go task() go task() select{} } func task(){ for { } }
時々、よく使用します:
runtime.GOMAXPROCS( runtime.NumCPU())func NumCPU() int NumCPU returns the number of logical CPUs usable by the current process.
この関数は、現在のプロセスで使用可能な論理 CPU の数を返します現在テストされており、これを使用して設定しますCPU には、GOMAXPROCS を呼び出さない場合と同じ効果があります。つまり、すべての CPU コアの数を使用します。
2020.1.1補足更新
最新のテスト結果:
1. 最大 8 コアを実行できる CPU
8 ゴルーチンのセットアップには GOMAXPROCS を使用しないでください。CPU 使用率は最大 800% に達する可能性があります。
8 goroutines
- 1 コアのみを使用するように設定すると、CPU 使用率は最大 100% に達する可能性があります
つまり、GOMAXPROCS を使用すると、プログラムが最も多くの CPU コアを使用するように設定できます。
以上がGolangのCPU使用設定を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。