Timing-Funktionen und Berechnung der Laufzeit in Go
In Go können Sie das Zeitpaket nutzen, um die Laufzeit jeder Funktion genau zu messen und abzurufen der Wert in Millisekunden. Ein praktischer Ansatz ist die Verwendung der Verzögerungsfunktion.
In Go-Versionen 1.x und früher können Sie die folgenden Funktionen definieren:
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)) }
Innerhalb Ihres Codes können Sie diese Funktionen dann aufrufen wie folgt:
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) //do a bunch of stuff here... }
Durch die Nutzung der defer-Anweisung wird die Funktion „trace()“ am Anfang von „someFunction()“ aufgerufen, während die Funktion „un()“ am Anfang von „someFunction()“ aufgerufen wird Die Ausführung wird erst nach Abschluss von someFunction() verzögert. Dieser Ansatz ermöglicht eine genaue Laufzeitprotokollierung bei gleichzeitiger Beibehaltung der Einfachheit des Codes.
Beachten Sie, dass das bereitgestellte Codebeispiel Protokollierungsanweisungen verwendet, die die Genauigkeit der Laufzeitmessungen geringfügig beeinträchtigen können. Wenn eine höhere Genauigkeit von entscheidender Bedeutung ist, sollten Sie mit alternativen Techniken experimentieren, die den Protokollierungsaufwand minimieren.
Das obige ist der detaillierte Inhalt vonWie können Sie die Funktionslaufzeit in Go mithilfe des Schlüsselworts „defer' messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!