Maison >développement back-end >Golang >Comment puis-je mesurer le temps d'exécution d'une fonction en Go avec une précision à la milliseconde ?

Comment puis-je mesurer le temps d'exécution d'une fonction en Go avec une précision à la milliseconde ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 05:50:10355parcourir

How Can I Measure Function Runtime in Go with Millisecond Precision?

Calcul du temps d'exécution d'une fonction dans Go avec une précision en millisecondes

Dans Go, mesurer le temps d'exécution d'une fonction et renvoyer sa durée en millisecondes est simplifié grâce à la puissance des fonctions différées. Voici comment procéder :

Pour Go 1.x et supérieur, définissez les fonctions utilitaires 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, "Elapsed Time in seconds:", endTime.Sub(startTime))
}

Ensuite, pour chronométrer une fonction, différez simplement la fonction un() avec une chaîne appropriée au début de la fonction :

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

    // Do your stuff ...
}

Lorsque vous exécutez cette fonction, vous recevrez des messages de journal concis indiquant le début et la fin de la fonction, ainsi que avec le temps écoulé en secondes.

Gardez à l'esprit que même si cette méthode n'est pas parfaite pour un timing extrêmement précis en raison de la surcharge de journalisation, il s'agit d'une approche efficace et pratique pour la plupart des cas d'utilisation. La technique de report de Go facilite le chronométrage des fonctions et le suivi de leurs temps d'exécution.

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