gobench的使用【Go学习笔记】 |Go主题月

1,340 阅读1分钟

Go压力测试学习笔记:

老规矩,我们先介绍关于gobench的一些知识:

  • 文件名还是XXX_test.go
  • 函数名要是BenchAaaaa(b *testing.B)这个格式的, 和go test一样,Bench前的Aaaaaa的第一个字母要大写哦。
  • 函数内:
  1. 使用b.N进行轮询测试,这是一个必选项,必须要选。
  2. 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。 image.png

这里需要等待一会儿...

下面是测试结果:

image.png

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测试开始")在测试中输出日志。

image.png

博主是个热爱Golang的学生,可以关注博主一起学习哦!

go test的使用【Go 学习笔记】|Go主题月

juejin.cn/post/694319…

【Go】异常处理之自定义错误

juejin.cn/post/693915…