Go のパフォーマンス ベンチマークは、Benchmark で始まる関数内にベンチマーク コードを記述することで関数の効率を測定します。 testing.B タイプは、ベンチマーク動作を制御するための ResetTimer()、StopTimer()、および N プロパティを提供します。たとえば、フィボナッチ数を計算する関数のベンチマークは、Fib(30) の実行に約 2,767,425 ナノ秒かかることを示しています。ベンチマーク コードを最適化してオーバーヘッドを回避し、正確な結果を得るために複数回実行します。
Go 関数テストにおけるパフォーマンス ベンチマーク
パフォーマンス ベンチマークは、関数の効率を測定するための重要なツールです。 Go では、testing
パッケージは関数の実行時間をベンチマークする機能を提供します。
パフォーマンス ベンチマーク テストの作成
パフォーマンス ベンチマーク テストを作成するには、Benchmark
で始まり、その後に関数名が続く関数を作成する必要があります。テスト対象:
func BenchmarkFib(b *testing.B) { // 基准测试代码 }
testing.B
testing.B
タイプを使用すると、ベンチマークを制御するための次のメソッドが提供されます:
ResetTimer()
: タイマーをリセットします。 StopTimer()
: タイマーを停止し、時間を記録します。 N
: ベンチマーク テストが実行された回数。 実践的なケース
フィボナッチ数を計算する関数のベンチマークを行ってみましょう:
func Fib(n int) int { if n <= 1 { return n } return Fib(n-1) + Fib(n-2) } func BenchmarkFib(b *testing.B) { for i := 0; i < b.N; i++ { Fib(30) } }
ターミナルで実行しますテスト:
go test -bench=.
出力は次のようになります:
BenchmarkFib 2767425 ns/op
これは、引数として 30 を指定して Fib
関数を実行するベンチマークには約 2,767,425 ナノ秒 (2767 ミリ秒) かかることを意味します。
ヒント
-benchmem
フラグを使用して、ベンチマークのメモリ割り当てを測定します。 以上がGolang 関数テストのパフォーマンス ベンチマークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。