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
- 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
- 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!