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
Susan Sarandonoriginal
2024-11-12 05:22:02254parcourir

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))
}

É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
}

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!

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