Heim >Backend-Entwicklung >Golang >Detaillierte Erläuterung der Golang-CPU-Nutzungseinstellungen

Detaillierte Erläuterung der Golang-CPU-Nutzungseinstellungen

藏色散人
藏色散人nach vorne
2021-06-11 11:54:282676Durchsuche

Die folgende Tutorial-Kolumne von golang gibt Ihnen eine detaillierte Erklärung der Nutzungseinstellungen der Golang-CPU. Ich hoffe, dass sie für Freunde in Not hilfreich ist!

Für die folgenden Tests ist die verwendete Go-Version 1.8.3

Nicht festgelegt

Wenn runtime.GOMAXPROCS nicht zum Festlegen der CPU aufgerufen wird, verwendet Golang standardmäßig alle CPU-Kerne.

Die CPU der Testmaschine verfügt über 4 Kerne und der Testcode öffnet 4 Goroutinen. Aus den Testergebnissen ist ersichtlich, dass alle 4 Kerne vollständig ausgeführt werden.

Der Testcode lautet wie folgt:

package main

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

	select{}

}


func task(){

	for {	
	
	}

}

CPU-Auslastung festlegen

func GOMAXPROCS(n int) int

GOMAXPROCS legt die maximale Anzahl von CPUs fest, die gleichzeitig ausgeführt werden können, und gibt die vorherige Einstellung zurück .

Legen Sie die Anzahl der CPUs fest, die während der gleichzeitigen Ausführung verwendet werden.

Stellen Sie beispielsweise so ein, dass nur 1 Kern verwendet wird.

runtime.GOMAXPROCS(1)
.

Stellen Sie so ein, dass nur 2 Kerne verwendet werden

Manchmal verwenden wir oft:

runtime.GOMAXPROCS(runtime.NumCPU())

runtime.GOMAXPROCS(2)

Die Funktion gibt die Anzahl der logischen CPUs zurück, die für den aktuellen Prozess verfügbar sind

Derzeit getestet, hat die Verwendung dieser CPU-Einstellung den gleichen Effekt da GOMAXPROCS nicht aufgerufen wird, d. h. alle CPU-Kerne verwendet werden.

2020.1.1 Ergänzungsupdate

Neueste Testergebnisse:

Testmaschine: MAC CPU 8 Kerne

Version: Go-Version go1.13 Darwin/AMD64

1. Verwenden Sie GOMAXPROCS nicht zum Einrichten der CPU
8 Goroutinen, die volle 8 Kerne ausführen kann, kann die CPU-Auslastung bis zu 800 % erreichen

2. Verwenden Sie GOMAXPROCS, um die CPU einzustellen.
8 Goroutinen Um nur 2 Kerne zu verwenden, kann die CPU-Auslastung bis zu 200 % erreichen

Das heißt, GOMAXPROCS kann verwendet werden, um die maximale Anzahl der vom Programm verwendeten CPU-Kerne festzulegen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Golang-CPU-Nutzungseinstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen