go test - 基准测试
dev
#go
【go-test】
稳定的测试环境
性能测试受环境影响很大,为保证测试的可重复性,尽可能地保持测试环境的稳定
- 机器处于闲置状态,测试时不要执行其他任务,也不要和其他人共享硬件资源
- 机器是否关闭了节能模式,一般笔记本会默认打开这个模式,测试时关闭
- 避免使用虚拟机和云主机进行测试,虚拟机和云主机 CPU 和内存一般会超分配,性能表现会非常地不稳定
规则
- 测试函数需要位于
*_test
文件中
- 函数名称必须以
Benchmark
开头
- 函数必须接受
*testing.B
作为唯一形参
- 测试函数必须包含一个
for
循环(以 b.N
为其上限)
1
2
3
4
5
6
7
8
9
10
|
// fib.go
package main
func Fib(n int) int {
if n == 0 || n == 1 {
return n
}
return Fib(n-2) + Fib(n-1)
}
|
1
2
3
4
5
6
7
8
9
10
|
// fib_test.go
package main
import "testing"
func BenchmarkFib(b *testing.B) {
for n := 0; n < b.N; n++ {
Fib(30) // run fib(30) b.N times
}
}
|
go test -cover
ref
The Cover Story