>백엔드 개발 >Golang >Golang CPU 사용량 설정에 대한 자세한 설명

Golang CPU 사용량 설정에 대한 자세한 설명

藏色散人
藏色散人앞으로
2021-06-11 11:54:282693검색

다음 golang 튜토리얼 칼럼에서 Golang CPU의 사용 설정에 대해 자세히 설명하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

다음 테스트에서 사용된 Go 버전은 1.8.3

Not set

runtime.GOMAXPROCS가 CPU를 설정하기 위해 호출되지 않으면 Golang은 기본적으로 모든 CPU 코어를 사용합니다.

테스트 머신 CPU에는 4개의 코어가 있으며 테스트 코드는 4개의 고루틴을 엽니다. 테스트 결과에서 4개의 코어가 모두 완전히 실행되는 것을 볼 수 있습니다.

테스트 코드는 다음과 같습니다.

package main

func main()  {
	go task()
	go task()
	go task()
	go task()

	select{}

}


func task(){

	for {	
	
	}

}

Set CPU Usage

func GOMAXPROCS(n int) int

GOMAXPROCS는 동시에 실행할 수 있는 최대 CPU 수를 설정하고 n < 1인 경우 이전 설정을 반환합니다. .

동시 실행시 사용되는 CPU 개수 설정

예를 들어 1코어만 사용하도록 설정

runtime.GOMAXPROCS(1)

2코어만 사용하도록 설정

runtime.GOMAXPROCS(2)

테스트 코드는 다음과 같습니다. 코어 1개만 설정

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 버전 go1.13 darwin/amd64

1 CPU
8 고루틴을 설정하는 데 GOMAXPROCS를 사용하지 마세요. 8개의 코어를 모두 실행할 수 있으면 CPU 사용량은 최대 800%에 도달할 수 있습니다

2. GOMAXPROCS를 사용하여 CPU를 설정하세요
8 고루틴
- 1개의 코어만 사용하도록 설정하면 CPU 사용량이 최대 100%에 도달할 수 있습니다
- 설정 2개의 코어만 사용하려면 CPU 사용량이 최대 200%에 도달할 수 있습니다

즉, GOMAXPROCS를 사용하여 프로그램에서 사용하는 최대 CPU 코어 수를 설정할 수 있습니다.

위 내용은 Golang CPU 사용량 설정에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제