Go で関数の実行時間をミリ秒の精度で効率的に測定するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-12 05:22:02
オリジナル
217 人が閲覧しました

How can I efficiently measure function execution time in Go with millisecond precision?

ミリ秒精度で Go の関数実行時間を測定する

Go の課題の 1 つは、関数の実行時間を決定し、それをレポートすることです。

解決策: Go の活用defer

Go の defer ステートメントは、タイミング関数の便利なソリューションを提供します。これを実現する方法は次のとおりです:

ステップ 1: ユーティリティ関数を定義する

Go 1.x で次のユーティリティ関数を定義します:

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))
}
ログイン後にコピー

ステップ 2: 時間を計るFunction

someFunction という名前の関数の時間を計測するには、次のように、この関数を trace() および un() 呼び出しでラップします。

func someFunction() {
    defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK"))

    // Do your function logic here
}
ログイン後にコピー

説明

trace() 関数は関数の先頭で呼び出され、開始時間を記録します。 un() 関数は関数の最後まで延期され、経過時間を測定し、ミリ秒の精度でログに出力します。

時間測定のカスタマイズ

これこの手法は、endTime.Sub(startTime) を調整することで、ナノ秒やマイクロ秒などの他の時間単位を測定するように変更できます。

Go の defer ステートメントを活用すると、関数の実行時間をミリ秒単位で簡単かつ正確に測定でき、パフォーマンスの最適化のための貴重な洞察が得られます。

以上がGo で関数の実行時間をミリ秒の精度で効率的に測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート