Go压力测试学习笔记:
老规矩,我们先介绍关于gobench的一些知识:
- 文件名还是XXX_test.go
- 函数名要是BenchAaaaa(b *testing.B)这个格式的, 和go test一样,Bench前的Aaaaaa的第一个字母要大写哦。
- 函数内:
- 使用b.N进行轮询测试,这是一个必选项,必须要选。
- b.ReportAllocs(),这个是汇报具体内存使用的。是一个可选项,可以不选。
这是要测试的函数。 文件名:压力测试.go
package 测试
func GetSum(n int) int {
var sum = 0
for i := 1;i<n+1;i++{
sum += i
}
return sum
}
下面看压力测试: 文件名:压力测试_test.go
package 测试
import "testing"
func BenchmarkGetSum(b *testing.B) {
b.ReportAllocs()
for i:=0;i<b.N;i++{
GetSum(10)
}
}
这里必须在for循环用b.N.
👇👇👇
for i:=0;i<b.N;i++{
GetSum(10)
}
这里使用b.ReportAllocs()
是来汇报具体内存使用的。
然后是压力测试的方法:
先在测试文件夹上点击右键,然后选择run,再选择gobench。
这里需要等待一会儿...
下面是测试结果:
goos:是你测试的系统环境,我这里是windows
goarch:是系统架构
下面是测试数据。其中的7.30 ns/op,6.92 ns/op表示每次耗时7.30ns,6.92ns。
package 测试
import "testing"
func BenchmarkGetSum(b *testing.B) {
b.Log("BenchmarkGetSum测试开始")
b.ReportAllocs()
for i:=0;i<b.N;i++{
GetSum(10)
}
}
我们也可以利用b.log(),例如b.Log("BenchmarkGetSum测试开始")
在测试中输出日志。
博主是个热爱Golang的学生,可以关注博主一起学习哦!
go test的使用【Go 学习笔记】|Go主题月
【Go】异常处理之自定义错误