前言
版本: 1.18 目的:想要充分利用CPU的性能
测试
- 默认是多核全部使用,我们使用2核测试
func main() {
runtime.GOMAXPROCS(2)
go task()
go task()
go task()
go task()
select {}
}
func task() {
for {
}
}
- 我们测试下一个
goroutine
func main() {
runtime.GOMAXPROCS(2)
go task()
//go task()
//go task()
//go task()
select {}
}
func task() {
for {
}
}
能看出只使用了一核
3.默认配置
func main() {
//runtime.GOMAXPROCS(2)
go task()
go task()
go task()
go task()
go task()
go task()
go task()
go task()
select {}
}
func task() {
for {
}
}
测试结果
测试机器:MAC CPU 8核
版本:go version go1.18 darwin/amd64
-
不使用GOMAXPROCS 设置CPU 8 个
goroutine,可以跑满8个核, CPU使用最高达到800% -
使用GOMAXPROCS 设置CPU4 个
goroutine
- 设置只使用1个核, CPU使用最高达到100%
- 设置只使用2个核,CPU使用最高达到200%
GOMAXPROCS可以用来设置程序使用的最多CPU核数。