【发布时间】:2014-08-10 16:48:36
【问题描述】:
我写了两个函数,现在我很想知道,哪个更快。我怎样才能知道哪个更快?
如何通过测试找出哪个更快?去提供一个计时器吗?
【问题讨论】:
我写了两个函数,现在我很想知道,哪个更快。我怎样才能知道哪个更快?
如何通过测试找出哪个更快?去提供一个计时器吗?
【问题讨论】:
更好的是,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
它将打印每个函数花费了多长时间以及内存使用/分配。
参考:
【讨论】:
您可以为每个函数编写一个基准。
参见例如“How to write benchmarks in Go”
// 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=. 检查结果
【讨论】: