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!