3

Go について学ぶとfmt.Println(testing.Benchmark(BenchmarkFunction))、次のように設定すると、 を使用して関数のベンチマークを実行できることがわかります。

func BenchmarkFunction(b *testing.B) {
    n := 42
    for i := 0; i < b.N; i++ {
        _ = Function(n)
    }
}

ただし、BenchmarkFunctionこれを行うすべてのメソッドのすべてのベンチマークに対してコードが繰り返されるため(したがって、DRYに関してコードの匂いがします)、クロージャーを使用して(または他の方法で)これを書き換える方法はありますか?関数のベンチマークは次のように書き直すことができます。

fmt.println(test.BenchmarkMyFunction(MyFunction(parameters...)))

私のコードまたはtestingライブラリに追加されましたか?

4

3 に答える 3