久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      詳解Golang cpu的使用設(shè)置

      下面由golang教程欄目給大家詳解Golang cpu的使用設(shè)置,希望對需要的朋友有所幫助!

      以下測試,使用的Go版本是1.8.3

      不設(shè)置

      如果沒有調(diào)用runtime.GOMAXPROCS 去設(shè)置CPU,Golang默認使用所有的cpu核。

      測試機器CPU有4個核,測試代碼開啟4個goroutine,從測試結(jié)果看4個核心全部跑滿。

      測試代碼如下:

      package main  func main()  { 	go task() 	go task() 	go task() 	go task()  	select{}  }   func task(){  	for {	 	 	}  }

      設(shè)置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.

      設(shè)置并發(fā)執(zhí)行時使用的CPU的數(shù)目

      例如,設(shè)置只使用1個核心

      runtime.GOMAXPROCS(1)

      設(shè)置只使用2個核心

      runtime.GOMAXPROCS(2)

      測試代碼如下,只設(shè)置一個核心:

      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.

      函數(shù)返回當前進程可用的邏輯CPU數(shù)目

      目前測試下來,使用這個設(shè)置CPU,效果和不調(diào)用GOMAXPROCS效果一樣,就是使用所有的CPU核心數(shù)。

      2020.1.1 補充更新

      最新測試結(jié)果:

      測試機器:MAC CPU 8核
      版本:go version go1.13 darwin/amd64

      1.不使用GOMAXPROCS 設(shè)置CPU
      8 個goroutine,可以跑滿8個核, CPU使用最高達到800%

      2.使用GOMAXPROCS 設(shè)置CPU
      8 個goroutine
      – 設(shè)置只使用1個核, CPU使用最高達到100%
      – 設(shè)置只使用2個核,CPU使用最高達到200%

      也就是說GOMAXPROCS可以用來設(shè)置程序使用的最多CPU核數(shù)。

      贊(0)
      分享到: 更多 (0)
      ?
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號