Maison > développement back-end > Golang > Comment pouvez-vous mesurer le temps d'exécution d'une fonction dans Go à l'aide du mot-clé « defer » ?

Comment pouvez-vous mesurer le temps d'exécution d'une fonction dans Go à l'aide du mot-clé « defer » ?

Linda Hamilton
Libérer: 2024-11-16 14:29:02
original
345 Les gens l'ont consulté

How Can You Measure Function Runtime in Go Using the `defer` Keyword?

Fonctions de synchronisation et calcul du temps d'exécution dans Go

Dans Go, vous pouvez utiliser le package de temps pour mesurer avec précision le temps d'exécution de n'importe quelle fonction et récupérer la valeur en millisecondes. Une approche pratique consiste à utiliser la fonctionnalité de report.

Dans les versions Go 1.x et antérieures, vous pouvez définir les fonctions suivantes :

func trace(s string) (string, time.Time) {
    log.Println("START:", s)
    return s, time.Now()
}

func un(s string, startTime time.Time) {
    endTime := time.Now()
    log.Println("  END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime))
}
Copier après la connexion

Dans votre code, vous pouvez ensuite appeler ces fonctions comme suit :

func someFunction() {
    defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK"))

    //do a bunch of stuff here...
}
Copier après la connexion

En exploitant l'instruction defer, la fonction trace() est invoquée au début de someFunction(), tandis que la fonction un() est son exécution est différée uniquement après l'achèvement de someFunction(). Cette approche fournit une journalisation d'exécution précise tout en conservant la simplicité du code.

Notez que l'exemple de code fourni utilise des instructions de journalisation, ce qui peut légèrement affecter la précision des mesures d'exécution. Si une plus grande précision est cruciale, envisagez d'expérimenter des techniques alternatives qui minimisent les frais de journalisation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal