我写了两个函数,现在我想知道,哪个更快。我怎样才能找到它,哪一个更快?
如何通过测试找出哪一个更快?要为此提供计时器吗?
答案 0 :(得分:7)
更好的是,Go提供了内置的基准测试和测试功能!
创建名为 something_test.go 的文件(必须包含 _test 部分)。
func BenchmarkFunc1(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func1()
}
}
func BenchmarkFunc2(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func2()
}
}
然后只需运行:go test -bench=. -benchmem
它将打印每个函数占用的时间和内存使用/分配。
价:
答案 1 :(得分:3)
您可以为每个功能编写基准。
例如参见&#34; How to write benchmarks in Go&#34;
// from source_test.go
func BenchmarkFunction1(b *testing.B) {
// run the Function1 function b.N times
for n := 0; n < b.N; n++ {
Function1(10)
}
}
重复Function2
并使用go test -bench=.