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
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 { } }
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())
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änzungsupdateNeueste Testergebnisse: Testmaschine: MAC CPU 8 Kerneruntime.GOMAXPROCS(2)Nach dem Login kopierenDie Funktion gibt die Anzahl der logischen CPUs zurück, die für den aktuellen Prozess verfügbar sind
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!