zhcn 编程语言 Golang Golang 容器 非公開: Go计算函数的执行时间

Go计算函数的执行时间

函数执行时间是衡量该函数性能的重要指标,尤其是在比较和基准测试中。获取函数执行时间的最简单方法是设置开始时间并在函数执行之前运行它。在函数的最后,我们得到从开始时间到当前时间的时间间隔。这个时间间隔就是函数的执行时间。

在Go语言中,可以使用time包中的Because()函数来获取函数的执行时间。 Go语言官方文档中对Because()函数的介绍如下:

func Since(t Time) Duration

Cause() 函数返回从 t​​ 到现在经过的时间。这相当于time.Now().Sub(t)

【示例】使用since()函数获取函数的执行时间。

 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()
} 

执行结果如下。

関数の実行にかかった時間: 39.8933ms

我上面说过time.Now().Sub()函数与Because()函数类似,但是如果你想使用time.Now().Sub()来获取函数的执行时间应该简化一行上述代码的14。只要改变它。

[示例2] 使用time.Now().Sub()获取函数的执行时间。

 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()
} 

执行结果如下。

この関数の実行にかかった時間: 36.8769ms

由于您电脑CPU等因素的影响,每次获取函数执行时间时的结果会略有不同,这是正常现象。

《Go语言计算函数的执行时间》浅显易懂的讲解!您必须观看的最佳 2 个视频

一緒に学ぶGo言語入門 ~その2:パッケージ・変数・関数(前半)~
https://www.youtube.com/watch?v=2aiTzfvEWKg&pp=ygUtIEdv6KiA6Kqe44Gu6KiI566X6Zai5pWw44Gu5a6f6KGM5pmC6ZaTJmhsPUpB
Go言語で素数を計算する
https://www.youtube.com/watch?v=NtHDOZxicQ0&pp=ygUtIEdv6KiA6Kqe44Gu6KiI566X6Zai5pWw44Gu5a6f6KGM5pmC6ZaTJmhsPUpB
函数执行时间是衡量该函数性能的重要指标,尤其是在比较和基准测试中。获取函数执行时间的最简单方法是设置开始时间并在函数执行之前运行它。在函数的最后,我们得到从开始时间到当前时间的时间间隔。这个时间间隔就是函数的执行时间。

在Go语言中,可以使用time包中的Because()函数来获取函数的执行时间。 Go语言官方文档中对Because()函数的介绍如下:

func Since(t Time) Duration

Cause() 函数返回从 t​​ 到现在经过的时间。这相当于time.Now().Sub(t)

【示例】使用since()函数获取函数的执行时间。

 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()
} 

执行结果如下。

関数の実行にかかった時間: 39.8933ms

我上面说过time.Now().Sub()函数与Because()函数类似,但是如果你想使用time.Now().Sub()来获取函数的执行时间应该简化一行上述代码的14。只要改变它。

[示例2] 使用time.Now().Sub()获取函数的执行时间。

 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()
} 

执行结果如下。

この関数の実行にかかった時間: 36.8769ms

由于您电脑CPU等因素的影响,每次获取函数执行时间时的结果会略有不同,这是正常现象。

《Go语言计算函数的执行时间》浅显易懂的讲解!您必须观看的最佳 2 个视频

一緒に学ぶGo言語入門 ~その2:パッケージ・変数・関数(前半)~
https://www.youtube.com/watch?v=2aiTzfvEWKg&pp=ygUtIEdv6KiA6Kqe44Gu6KiI566X6Zai5pWw44Gu5a6f6KGM5pmC6ZaTJmhsPUpB
Go言語で素数を計算する
https://www.youtube.com/watch?v=NtHDOZxicQ0&pp=ygUtIEdv6KiA6Kqe44Gu6KiI566X6Zai5pWw44Gu5a6f6KGM5pmC6ZaTJmhsPUpB