Funktionsausführungszeit in Go mit Millisekundengenauigkeit messen
Eine der Herausforderungen in Go besteht darin, die Laufzeit einer Funktion zu bestimmen und sie zu melden Millisekunden.
Lösung: Go's nutzen defer
Gos defer-Anweisung bietet eine praktische Lösung für Timing-Funktionen. So kann dies erreicht werden:
Schritt 1: Hilfsfunktionen definieren
Definieren Sie die folgenden Hilfsfunktionen in 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)) }
Schritt 2: Zeit für Ihre Funktion festlegen
Um eine Funktion mit dem Namen someFunction zeitlich zu bestimmen, schließen Sie sie ein mit den Aufrufen „trace()“ und „un()“ wie folgt:
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) // Do your function logic here }
Erklärung
Die Funktion „trace()“ wird zu Beginn der Funktionsaufzeichnung aufgerufen die Startzeit. Die Funktion un() wird auf das Ende der Funktion verschoben, misst die verstrichene Zeit und druckt sie mit Millisekundengenauigkeit in das Protokoll.
Anpassen der Zeitmessung
Dies Die Technik kann geändert werden, um andere Zeiteinheiten wie Nanosekunden oder Mikrosekunden zu messen, indem die endTime.Sub(startTime)-Berechnung angepasst wird.
Durch die Nutzung von Go's defer-Anweisung können Sie die Ausführungszeiten von Funktionen einfach und genau in Millisekunden messen und so wertvolle Erkenntnisse für die Leistungsoptimierung liefern.
Das obige ist der detaillierte Inhalt vonWie kann ich die Funktionsausführungszeit in Go effizient und millisekundengenau messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!