benchmark的写法
- benchmark函数一般以Benchmark开头
- benchmark的case一般会跑b.N次,而且每次执行都会如此
- 在执行过程中go会根据实际case的执行时间是否稳定来决定b.N的次数,最后达到稳态
下面举栗子:(在main_test.go中加入以下代码)
package main
import (
"testing"
)
func BenchmarkAll(b *testing.B){
for n := 0; n < b.N; n++{
Print1to20()
}
}
命令行输入:
go test -bench=.
注意:
千万不要测试非稳态的代码,如:
func aaa(n int)int{
for n > 0{
n--
}
return n
}
func BenchmarkAll(b *testing.B){
for n := 0; n < b.N; n++{
aaa(n)
}
}
// 运行不会停