Golang : vérification du nombre de processeurs alloués à un programme
La détermination du nombre de processeurs alloués à un programme Go est cruciale pour optimiser les performances. Cet article aborde la question de savoir comment vérifier le nombre de processeurs exécutant un programme lorsque la variable runtime.GOMAXPROCS est modifiée.
Pour vérifier les processeurs alloués, Go fournit la fonction runtime.NumCPU(). Cette fonction récupère le nombre maximum de processeurs logiques disponibles sur le système hôte. Voici comment l'utiliser :
fmt.Println("Number of allocated processors:", runtime.NumCPU())
Le nombre maximum de processeurs logiques qu'un programme peut utiliser est le minimum de runtime.GOMAXPROCS(0) et runtime.NumCPU(). Cette valeur peut être obtenue à l'aide de la fonction MaxParallelism :
func MaxParallelism() int { maxProcs := runtime.GOMAXPROCS(0) numCPU := runtime.NumCPU() if maxProcs < numCPU { return maxProcs } return numCPU }
En comparant la sortie de runtime.NumCPU() avec runtime.MaxParallelism(), vous pouvez déterminer le nombre réel de processeurs alloués au programme.
Même lorsque GOMAXPROCS est défini sur une valeur supérieure à 1, la commande « top » peut afficher le processus « a.out » utilisant moins de 100% des ressources. En effet, le planificateur d'exécution Go peut ne pas utiliser pleinement tous les processeurs disponibles à tout moment. Cela dépend de facteurs tels que la simultanéité des programmes, la planification des tâches et la charge du système.
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!