|
下面由golang教程栏目给大家详解Golang cpu的使用设置,希望对需要的朋友有所帮助! 以下测试,使用的Go版本是1.8.3 不设置如果没有调用runtime.GOMAXPROCS 去设置CPU,Golang默认使用所有的cpu核。 测试机器CPU有4个核,测试代码开启4个goroutine,从测试结果看4个核心全部跑满。 测试代码如下: package main
func main() {
go task()
go task()
go task()
go task()
select{}
}
func task(){
for {
}
}设置CPU使用func GOMAXPROCS(n int) int GOMAXPROCS sets the maximum number of CPUs that can be executing simultaneously and returns the previous setting. If n < 1, it does not change the current setting.
设置并发执行时使用的CPU的数目 例如,设置只使用1个核心 runtime.GOMAXPROCS(1) 设置只使用2个核心 runtime.GOMAXPROCS(2) 测试代码如下,只设置一个核心: package main
import (
"runtime"
)
func main() {
runtime.GOMAXPROCS(1)
go task()
go task()
go task()
go task()
select{}
}
func task(){
for {
}
}有时候,我们常用到: runtime.GOMAXPROCS(runtime.NumCPU())
func NumCPU() int
NumCPU returns the number of logical CPUs usable by the current process. 函数返回当前进程可用的逻辑CPU数目 目前测试下来,使用这个设置CPU,效果和不调用GOMAXPROCS效果一样,就是使用所有的CPU核心数。 2020.1.1 补充更新最新测试结果: 测试机器:MAC CPU 8核 版本:go version go1.13 darwin/amd64 1.不使用GOMAXPROCS 设置CPU 8 个goroutine,可以跑满8个核, CPU使用最高达到800% 2.使用GOMAXPROCS 设置CPU 8 个goroutine - 设置只使用1个核, CPU使用最高达到100% - 设置只使用2个核,CPU使用最高达到200% 也就是说GOMAXPROCS可以用来设置程序使用的最多CPU核数。 以上就是详解Golang cpu的使用设置的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |