Maison > développement back-end > Golang > Comment mesurer le temps d'exécution d'une fonction en Go à l'aide de la fonction de report ?

Comment mesurer le temps d'exécution d'une fonction en Go à l'aide de la fonction de report ?

DDD
Libérer: 2024-11-17 09:12:03
original
412 Les gens l'ont consulté

How to Measure Function Runtime in Go Using the Defer Feature?

Mesure du temps d'exécution d'une fonction dans Go

Dans Go, un moyen simple de mesurer le temps d'exécution d'une fonction consiste à tirer parti de la fonction de report.

Implémentation

  1. Définissez les fonctions d'assistance 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
  1. Utilisez ces fonctions dans la fonction cible :
func someFunction() {
    defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK"))

    // Perform the function's intended operations here...
}
Copier après la connexion

Explication

  • La fonction trace() est appelée au début de la fonction et renvoie le nom de la fonction et le courant time.
  • L'instruction defer un diffère l'exécution de un() jusqu'à la fin de la fonction.
  • Lorsque un() est exécuté, elle calcule le temps écoulé en utilisant la différence entre le temps actuel l'heure et l'heure de début obtenues à partir de trace().
  • L'heure est enregistrée en millisecondes.

Remarque :

  • Cette approche n'est pas précise par rapport à l'horloge atomique en raison des instructions de journalisation. Pour un timing plus précis, pensez à utiliser des outils de profilage spécifiques.

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