ミリ秒精度で 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 サイトの他の関連記事を参照してください。