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
Libérer: 2024-12-06 19:13:16
original
655 Les gens l'ont consulté

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())
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal