ホーム プログラミング言語 golang golang func Go言語の計算関数の実行時間

Go言語の計算関数の実行時間


 
 
関数の実行時間は、特に比較テストやベンチマーク テストにおいて、この関数のパフォーマンスを測定するための重要な指標です。関数の実行時間を取得する最も簡単な方法は、関数が実行される前に開始時間を設定し、実行することです。関数の最後に、開始時刻から現在までの時間間隔を取得します。この時間間隔が関数の実行時間になります。

 

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言語で素数を計算する