ホームページ  >  記事  >  バックエンド開発  >  GolangのCPU使用設定を詳しく解説

GolangのCPU使用設定を詳しく解説

藏色散人
藏色散人転載
2021-06-11 11:54:282579ブラウズ

次のチュートリアルコラムでは、Golang CPU の使用設定について詳しく説明しますので、困っている方の参考になれば幸いです。 次のテストでは、使用される Go バージョンは 1.8.3 です。Not set

CPU を設定するために runtime.GOMAXPROCS が呼び出されない場合、Golang はすべての CPU コアを使用します。デフォルトでは。

テスト マシンの CPU には 4 つのコアがあり、テスト コードは 4 つのゴルーチンを開きます。テスト結果から、4 つのコアすべてが完全に実行されていることがわかります。

テスト コードは次のとおりです。

package main

func main()  {
	go task()
	go task()
	go task()
	go task()

	select{}

}


func task(){

	for {	
	
	}

}

CPU 使用率の設定

func GOMAXPROCS(n int) int

GOMAXPROCS は、同時に実行できる CPU の最大数を設定し、前の設定を返します。 n
同時実行時に使用する 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補足更新

最新のテスト結果:

テストマシン:MAC CPU 8コア

バージョン:go version go1.13 darwin/amd64

1. 最大 8 コアを実行できる CPU

8 ゴルーチンのセットアップには GOMAXPROCS を使用しないでください。CPU 使用率は最大 800% に達する可能性があります。

2. GOMAXPROCS を使用してセットアップしてくださいCPU

8 goroutines
- 1 コアのみを使用するように設定すると、CPU 使用率は最大 100% に達する可能性があります

- 2 コアのみを使用するように設定すると、CPU 使用率は 200% に達する可能性があります


つまり、GOMAXPROCS を使用すると、プログラムが最も多くの CPU コアを使用するように設定できます。

以上がGolangのCPU使用設定を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。