Von einem Golang-Programm verwendete Prozessoren überprüfen
Beim Ausführen eines Golang-Programms ist es wichtig, die Anzahl der verwendeten Prozessoren zu kennen. Dieser Artikel befasst sich mit diesem Problem und bietet eine umfassende Erklärung und eine Codierungslösung.
Runtime.GOMAXPROCS() steuert die maximale Anzahl logischer Prozessoren, auf die ein Go-Programm zugreifen kann, während Runtime.NumCPU() die verfügbaren logischen Prozessoren zurückgibt . Die maximale Parallelität wird jedoch durch das Minimum dieser beiden Werte begrenzt.
Um die Anzahl der verwendeten Prozessoren zu überprüfen, ändern Sie den Code wie folgt:
package main import ( "fmt" "runtime" "sync" ) var wg sync.WaitGroup func doTasks() { fmt.Println(" Doing task ") for ji := 1; ji < 100000000; ji++ { for io := 1; io < 10; io++ { // Some computations } } runtime.Gosched() wg.Done() } func main() { wg.Add(1) runtime.GOMAXPROCS(1) // or 2 or 4 go doTasks() doTasks() wg.Wait() fmt.Println("Maximum processors:", runtime.GOMAXPROCS(0)) fmt.Println("Available logical processors:", runtime.NumCPU()) fmt.Println("Maximum parallelism:", runtime.MaxParallelism()) }
Dieser erweiterte Code fügt Funktionalitäten hinzu um die Werte Runtime.GOMAXPROCS(), Runtime.NumCPU() und Runtime.MaxParallelism() anzuzeigen und so eine klare Sicht auf den Prozessor des Programms zu ermöglichen Nutzung.
Das obige ist der detaillierte Inhalt vonWie viele Prozessoren nutzt mein Go-Programm tatsächlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!