我已经看到testing.BenchmarkResult
Go中有一个结构可以访问基准测试的结果,但是我发现很少有文档或示例可以帮助我使用它。
到目前为止,我只是对这样的功能进行基准测试:
func BenchmarkMyFunction(b *testing.B) {
// call to myFunction
}
然后运行:
go test -bench=".*"
这里将结果打印到控制台,但我想将它们存储在单独的文件中。如何使用该BenchmarkResult
类型执行此操作?
例如:
package main
import (
"fmt"
"testing"
"time"
)
func Add(a, b int) int {
time.Sleep(10 * time.Microsecond) // Just to make the test take some time
return a + b
}
func BenchAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Add(1, 2)
}
}
func main() {
res := testing.Benchmark(BenchAdd)
fmt.Printf("%s\n%#[1]v\n", res)
}
产生:
120000 10000 ns/op
testing.BenchmarkResult{N:120000, T:1200000000, Bytes:0, MemAllocs:0x0, MemBytes:0x0, Extra:map[string]float64{}}
操场。
您可以使用轻松将这些结果写到文件中ioutil.WriteFile
。带WriteFile的游乐场。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句