格式
- 文件名必须以_test结尾。
- 方法名必须已Benchmark开头。
- 测试方法需要使用 *testing.B。
命令行参数
输入参数
go test -v -bench=. -benchmem -count=3
参数含义
1.-bench 后面代表为需要测试的方法。如果是"."则代表执行所有的Benchmark开头的方法。
2.-benchmem 则代表输出参数中会展示内存的消耗和申请次数。
3,-count 代表测试次数
输出参数
Benchmark1-8 12412908 96.4 ns/op 16 B/op 2 allocs/op
Benchmark1-8 12856522 94.8 ns/op 16 B/op 2 allocs/op
Benchmark1-8 12992362 92.8 ns/op 16 B/op 2 allocs/op
输出参数含义
- ns/op 代表每次执行逻辑消耗的时间
- B/op 代表每次执行逻辑消耗的内存
- allocs/op代表每次执行逻辑申请内存的次数
样例-demo
package test
import (
"fmt"
"testing"
)
func Benchmark1(b *testing.B) {
//b.ResetTimer() 可以指定开始计时的位置
for i:=0;i<b.N ;i++ {
fmt.Sprintf("%d",i)
}
//b.StopTimer() 计时的结束的位置
}