Go 访问基准测试的结果

Go 访问基准测试的结果,go,benchmarking,Go,Benchmarking,我看到Go-to中有一个结构可以访问基准测试的结果,但我发现很少有文档或示例可以帮助我使用它 到目前为止,我只对我的功能进行了如下基准测试: func BenchmarkMyFunction(b *testing.B) { // call to myFunction } 然后运行: go test -bench=".*" 在这里,结果被打印到控制台,但我想将它们存储在一个单独的文件中。如何使用BenchmarkResult类型执行此操作?例如: 包干管 进口 fmt 测试 时间 fun

我看到Go-to中有一个结构可以访问基准测试的结果,但我发现很少有文档或示例可以帮助我使用它

到目前为止,我只对我的功能进行了如下基准测试:

func BenchmarkMyFunction(b *testing.B) {
   // call to myFunction
}
然后运行:

go test -bench=".*"
在这里,结果被打印到控制台,但我想将它们存储在一个单独的文件中。如何使用BenchmarkResult类型执行此操作?

例如:

包干管 进口 fmt 测试 时间 func Adda,b int{ time.Sleep10*time.Microsecond//只是为了让测试花费一些时间 返回a+b } func BenchAddb*测试。B{ 对于i:=0;i
  120000         10000 ns/op
testing.BenchmarkResult{N:120000, T:1200000000, Bytes:0, MemAllocs:0x0, MemBytes:0x0, Extra:map[string]float64{}}

您可以使用将这些结果轻松地写入文件。
.

只需将标准输出重定向到shell中的文件即可。注意,基准测试需要查看b.N才能有用。另请参见,正如文档中所建议的,您可以使用justgotest-bench=。运行所有基准测试。这避免了从shell中转义/quote*的需要,还添加了-json标志togo test,其中输出结果为机器可解析的json格式。