Maison >développement back-end >Golang >Combien de processeurs mon programme Go utilise-t-il réellement ?

Combien de processeurs mon programme Go utilise-t-il réellement ?

DDD
DDDoriginal
2024-12-06 19:13:16690parcourir

How Many Processors Does My Go Program Actually Use?

Vérification des processeurs utilisés par un programme Golang

Lors de l'exécution d'un programme Golang, il est crucial de comprendre le nombre de processeurs qu'il utilise. Cet article aborde ce problème en fournissant une explication complète et une solution de codage.

Runtime.GOMAXPROCS() contrôle le nombre maximum de processeurs logiques auxquels un programme Go peut accéder, tandis que Runtime.NumCPU() renvoie les processeurs logiques disponibles. . Cependant, le parallélisme maximum est limité par le minimum de ces deux valeurs.

Pour vérifier le nombre de processeurs utilisés, modifiez le code comme suit :

package main

import (
    "fmt"
    "runtime"
    "sync"
)

var wg sync.WaitGroup

func doTasks() {
    fmt.Println(" Doing task ")
    for ji := 1; ji < 100000000; ji++ {
        for io := 1; io < 10; io++ {
            // Some computations
        }
    }
    runtime.Gosched()

    wg.Done()
}

func main() {
    wg.Add(1)
    runtime.GOMAXPROCS(1) // or 2 or 4
    go doTasks()
    doTasks()
    wg.Wait()

    fmt.Println("Maximum processors:", runtime.GOMAXPROCS(0))
    fmt.Println("Available logical processors:", runtime.NumCPU())
    fmt.Println("Maximum parallelism:", runtime.MaxParallelism())
}

Ce code amélioré ajoute des fonctionnalités pour afficher les valeurs Runtime.GOMAXPROCS(), Runtime.NumCPU() et Runtime.MaxParallelism(), offrant une vue claire de l'utilisation du processeur par le programme.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn