About GOMAXPROCS
The GOMAXPROCS
environment variable (and Go function) allows you to limit the number of operating system threads that can execute user-level Go code simultaneously.
Note
Starting with Go version 1.5, the default value of GOMAXPROCS
should be the number of cores available on your Unix system.
Although using a GOMAXPROCS
value that is smaller than the number of the cores a Unix machine has might affect the performance of a program, specifying a GOMAXPROCS
value that is bigger than the number of the available cores will not make your program run faster!
The code of goMaxProcs.go
allows you to determine the value of the GOMAXPROCS
- it will be presented in two parts.
The first part is the following:
package main import ( "fmt" "runtime" ) func getGOMAXPROCS() int { return runtime.GOMAXPROCS(0) }
The second part is the following:
func main() { fmt.Printf("GOMAXPROCS: %d\n", getGOMAXPROCS()) }
Executing goMaxProcs.go
on an Intel i7 machine with hyper threading...