関数の実行時間は、特に比較テストやベンチマーク テストにおいて、この関数のパフォーマンスを測定するための重要な指標です。関数の実行時間を取得する最も簡単な方法は、関数が実行される前に開始時間を設定し、実行することです。関数の最後に、開始時刻から現在までの時間間隔を取得します。この時間間隔が関数の実行時間になります。
Go 言語では、関数の実行時間を取得するために time パッケージの Because() 関数を使用できます。Go 言語の公式ドキュメントでの Because() 関数の紹介は次のとおりです。
func Since(t Time) Duration
Because() 関数は、 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:パッケージ・変数・関数(前半)~
Go言語で素数を計算する