Maison  >  Article  >  développement back-end  >  Explication détaillée des paramètres d'utilisation du processeur Golang

Explication détaillée des paramètres d'utilisation du processeur Golang

藏色散人
藏色散人avant
2021-06-11 11:54:282623parcourir

La colonne tutorielle suivante de golang vous donnera une explication détaillée des paramètres d'utilisation du processeur Golang. J'espère qu'elle sera utile aux amis dans le besoin !

Pour les tests suivants, la version Go utilisée est la 1.8.3

Non définie

Si runtime.GOMAXPROCS n'est pas appelé pour définir le CPU, Golang utilise tous les cœurs du processeur par défaut.

Le processeur de la machine de test a 4 cœurs et le code de test ouvre 4 goroutines. D'après les résultats du test, on peut voir que les 4 cœurs sont entièrement chargés.

Le code de test est le suivant :

package main

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

	select{}

}


func task(){

	for {	
	
	}

}

Définir l'utilisation du processeur

func GOMAXPROCS(n int) int

GOMAXPROCS définit le nombre maximum de processeurs pouvant être exécutés simultanément et renvoie le paramètre précédent . Si n < 1, cela ne modifie pas le paramètre actuel.

Définissez le nombre de processeurs utilisés lors de l'exécution simultanée

Par exemple, définissez pour utiliser un seul cœur

runtime.GOMAXPROCS(1)

Configurer pour utiliser seulement 2 cœurs

runtime.GOMAXPROCS(2)

Le code de test est le suivant, configurer un seul cœur :

package main

import (
	"runtime"
)

func main()  {
    runtime.GOMAXPROCS(1)
	go task()
	go task()
	go task()
	go task()

	select{}
}


func task(){
	for {	
	
	}
}

Parfois, nous utilisons souvent :

runtime.GOMAXPROCS( runtime.NumCPU())

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

La fonction renvoie le nombre de processeurs logiques disponibles pour le processus en cours

Actuellement testé, en utilisant ceci pour définir le CPU a le même effet que de ne pas appeler GOMAXPROCS, utilisez simplement le nombre de tous les cœurs du CPU.

Mise à jour supplémentaire 2020.1.1

Derniers résultats des tests :

Machine de test : CPU MAC 8 cœurs
Version : version go go1.13 darwin/amd64

1. N'utilisez pas GOMAXPROCS pour configurer le processeur
8 goroutines, qui peuvent exécuter 8 cœurs, et l'utilisation du processeur peut atteindre jusqu'à 800 %

2. Utilisez GOMAXPROCS pour configurer le processeur
. 🎜>8 goroutines
- Réglé pour utiliser seulement 1 cœur, l'utilisation du processeur peut atteindre jusqu'à 100 %
- Réglé pour utiliser seulement 2 cœurs, l'utilisation du processeur peut atteindre jusqu'à 200 %

En d'autres termes, GOMAXPROCS peut être utilisé pour configurer le programme afin qu'il utilise le plus grand nombre de cœurs de processeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer