去基准测试不要测量环路吗?

时间:2018-08-09 23:09:39

标签: go benchmarking

在Go基准测试中,我有一些初始化代码来设置测试数据,然后具有如下所示的基准测试循环。似乎输出测量整个函数的运行时间,而不仅仅是循环中的内容。那对我来说不是有用的信息。有没有办法强制测量仅循环内容的运行时间,因为那是我所关心的?那不应该很明显吗?

func BenchmarkXXX(b *testing.B){
// Some test data init code..

for i:=0; i < b.N; i++ {
      //benchmarking code..
}  

1 个答案:

答案 0 :(得分:4)

您可以通过在“测试数据初始化代码”之后调用b.ResetTimer()来做到这一点。

func BenchmarkXXX(b *testing.B){
    // Some test data init code..

    b.ResetTimer()
    for i:=0; i < b.N; i++ {
        //benchmarking code..
    }
}

请参见Benchmarks