Golang CPU的使用设置

568 阅读1分钟

前言

版本: 1.18 目的:想要充分利用CPU的性能

测试

  1. 默认是多核全部使用,我们使用2核测试
func main() {
   runtime.GOMAXPROCS(2)

   go task()
   go task()
   go task()
   go task()

   select {}

}

func task() {

   for {

   }

}

image.png

  1. 我们测试下一个goroutine
func main() {
   runtime.GOMAXPROCS(2)

   go task()
   //go task()
   //go task()
   //go task()
   select {}
}

func task() {
   for {

   }
}

image.png 能看出只使用了一核

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 {

   }
}

image.png

测试结果

测试机器:MAC CPU 8核

版本:go version go1.18 darwin/amd64

  1. 不使用GOMAXPROCS 设置CPU 8 个goroutine,可以跑满8个核, CPU使用最高达到800%

  2. 使用GOMAXPROCS 设置CPU4 个goroutine

  • 设置只使用1个核, CPU使用最高达到100%
  • 设置只使用2个核,CPU使用最高达到200%

GOMAXPROCS可以用来设置程序使用的最多CPU核数。