欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

          以下測(cè)試,使用的Go版本是1.8.3

          不設(shè)置

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

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

          測(cè)試代碼如下:

          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í)行時(shí)使用的CPU的數(shù)目

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

          runtime.GOMAXPROCS(1)

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

          runtime.GOMAXPROCS(2)

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

          package main  import ( 	"runtime" )  func main()  {     runtime.GOMAXPROCS(1) 	go task() 	go task() 	go task() 	go task()  	select{} }   func task(){ 	for {	 	 	} }

          有時(shí)候,我們常用到:

          runtime.GOMAXPROCS(runtime.NumCPU())

          func NumCPU() int NumCPU returns the number of logical CPUs usable by the current process.

          函數(shù)返回當(dāng)前進(jìn)程可用的邏輯CPU數(shù)目

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

          2020.1.1 補(bǔ)充更新

          最新測(cè)試結(jié)果:

          測(cè)試機(jī)器:MAC CPU 8核
          版本:go version go1.13 darwin/amd64

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

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

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

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