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

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

Susan Sarandon
Libérer: 2024-11-12 05:22:02
original
259 Les gens l'ont consulté

How can I efficiently measure function execution time in Go with millisecond precision?

Mesurer le temps d'exécution d'une fonction en Go avec une précision à la milliseconde

L'un des défis de Go est de déterminer le temps d'exécution d'une fonction et de le signaler dans millisecondes.

Solution : tirer parti de Go defer

L'instruction defer de Go fournit une solution pratique pour les fonctions de synchronisation. Voici comment y parvenir :

Étape 1 : Définir les fonctions utilitaires

Définissez les fonctions utilitaires suivantes dans Go 1.x :

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

Étape 2 : Chronométrez votre fonction

Pour chronométrer une fonction nommée someFunction, enveloppez-le avec les appels trace() et un() comme suit :

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

    // Do your function logic here
}
Copier après la connexion

Explication

La fonction trace() est appelée au début de la fonction , en enregistrant l'heure de début. La fonction un() est reportée à la fin de la fonction, mesurant le temps écoulé et l'imprimant dans le journal avec une précision de la milliseconde.

Personnalisation de la mesure du temps

Ceci La technique peut être modifiée pour mesurer d'autres unités de temps telles que les nanosecondes ou les microsecondes en ajustant le calcul endTime.Sub(startTime).

Par en tirant parti de l'instruction defer de Go, vous pouvez mesurer facilement et avec précision les temps d'exécution des fonctions en millisecondes, fournissant ainsi des informations précieuses pour l'optimisation des performances.

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