Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie die Funktionsausführungszeit in der Go-Sprache

So erhalten Sie die Funktionsausführungszeit in der Go-Sprache

青灯夜游
青灯夜游Original
2023-01-17 10:23:063092Durchsuche

In der Go-Sprache können Sie die Funktion Since() im Zeitpaket verwenden, um die Ausführungszeit der Funktion zu erhalten. Legen Sie eine Startzeit fest, bevor die Funktion ausgeführt wird, und ermitteln Sie das Zeitintervall vom Startzeitpunkt bis zum aktuellen Ende der Funktionsausführung. Dieses Zeitintervall ist die Ausführungszeit der Funktion, und die Ausführungszeit der Funktion kann berechnet werden Die Funktion time.Since(). Die Syntax „time.Since(t)“ gibt die von t bis jetzt verstrichene Zeit zurück.

So erhalten Sie die Funktionsausführungszeit in der Go-Sprache

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Verwenden Sie die Zeit. Da die Ausführungszeit berechnet wird

Die Länge der Laufzeit der Funktion ist ein wichtiger Indikator zur Messung der Leistung dieser Funktion, insbesondere im Vergleichs- und Benchmark-Test, der einfachste Weg, sie zum Laufen zu bringen Zeit der Funktion: Legen Sie eine Startzeit fest, bevor die Funktion ausgeführt wird, und ermitteln Sie das Zeitintervall von der Startzeit bis zum aktuellen Ende der Funktionsausführung. Dieses Zeitintervall ist die Laufzeit der Funktion.

In der Go-Sprache können wir die Funktion Since() im Zeitpaket verwenden, um die Laufzeit der Funktion zu ermitteln. Die Einführung der Funktion Since() in der offiziellen Dokumentation der Go-Sprache lautet wie folgt. Die Funktion

func Since(t Time) Duration

Since() gibt die von t bis jetzt verstrichene Zeit zurück, was time.Now().Sub(t) entspricht.

Beispiel 1: Verwenden Sie die Funktion Since(), um die Laufzeit der Funktion

package main
import (
    "fmt"
    "time"
)
func test() {
    start := time.Now() // 获取当前时间
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum++
    }
    elapsed := time.Since(start)
    fmt.Println("该函数执行完成耗时:", elapsed)
}
func main() {
    test()
}

zu erhalten. Das laufende Ergebnis lautet wie folgt:

该函数执行完成耗时: 39.8933ms

Wir haben oben erwähnt, dass die Funktion time.Now().Sub() ähnelt der Funktion Since(). Wenn Sie time.Now().Sub() verwenden möchten, um die Laufzeit der Funktion zu erhalten, müssen Sie lediglich Zeile 14 unseres obigen Codes ändern.

Beispiel 2: Verwenden Sie time.Now().Sub(), um die Laufzeit der Funktion

package main
import (
    "fmt"
    "time"
)
func test() {
    start := time.Now() // 获取当前时间
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum++
    }
    elapsed := time.Now().Sub(start)
    fmt.Println("该函数执行完成耗时:", elapsed)
}
func main() {
    test()
}

zu erhalten. Die laufenden Ergebnisse lauten wie folgt:

该函数执行完成耗时: 36.8769ms

Aufgrund des Einflusses der Computer-CPU und einiger anderer Faktoren , wenn die Laufzeit der Funktion abgerufen wird Die Ergebnisse werden jedes Mal leicht unterschiedlich sein, was normal ist.

Wissen erweitern: Verwenden Sie time.Now().Sub(), um den Zeitunterschied zu berechnen

Wir müssen nur time.Since() durch time.Now().Sub() ersetzen, wie folgt:

rrree

Tatsächlich ruft time.Since intern das Zeitpaket auf, um zu sehen, dass „Since“ die seit t vergangene Zeit zurückgibt. Sub(t),

srctimetime.go 923:6

    start := time.Now() // 获取当前时间
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum++
    }
    elapsed := time.Now().Sub(start)
    fmt.Println(elapsed)

Wenn wir auch time.Now().Sub(start).Seconds() verwenden können, um die Anzahl der verstrichenen Sekunden zu erhalten, erhalten wir Stunden Die Anzahl der verstrichenen Stunden usw. kann auch als time.Since(start).Seconds(), time.Since(start).Seconds() usw. abgekürzt werden.

【Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Funktionsausführungszeit in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn