Fonctions de synchronisation et calcul du temps d'exécution dans Go
Dans Go, vous pouvez utiliser le package de temps pour mesurer avec précision le temps d'exécution de n'importe quelle fonction et récupérer la valeur en millisecondes. Une approche pratique consiste à utiliser la fonctionnalité de report.
Dans les versions Go 1.x et antérieures, vous pouvez définir les fonctions 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)) }
Dans votre code, vous pouvez ensuite appeler ces fonctions comme suit :
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) //do a bunch of stuff here... }
En exploitant l'instruction defer, la fonction trace() est invoquée au début de someFunction(), tandis que la fonction un() est son exécution est différée uniquement après l'achèvement de someFunction(). Cette approche fournit une journalisation d'exécution précise tout en conservant la simplicité du code.
Notez que l'exemple de code fourni utilise des instructions de journalisation, ce qui peut légèrement affecter la précision des mesures d'exécution. Si une plus grande précision est cruciale, envisagez d'expérimenter des techniques alternatives qui minimisent les frais de journalisation.
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!