go语言常见的web基准测试和并发测试
1. 基准测试
基准测试又称为性能测试,用于测试函数的执行效率占用内存等 书写遵循下面的
规范即可
- 文件名称以
源文件名_test.go
- 函数名以
BenchmarkYourFuncName(b testing.B)
- 批量基准测试使用如下代码格式:
for i := 0; i < b.N ; i++ {
//about your func call
}
这里的 b.N
是由系统计算的常量,不必考虑
我们来看个例子
calc.go
package calc
func Dec(a, b int) int {
res := a - b
if res < 0 {
return res
}
return res
}
calc_test.go
package calc
import "testing"
func BenchmarkDec(b *testing.B) {
m,n := 12356596,565858
except := m - n
for i := 0; i < b.N; i++ {
fact := Dec(m, n)
if except != fact {
b.Errorf("%d - %d except %d but fact %d \n", m, n, except, fact)
}
}
}
运行:
go test -bench .
该命令只运行 Benchmark
开头相关函数对应的文件,如果你在项目根目录执行&#x