[Golang]效能测试(Benchmark)简介-心智图总结

1. Benchmark,是GO语言用来做函数的效能测试。

2. Go语言对效能测试函数的名称与函数的参数有什么规定?
a. 对于效能测试函数,其名称必须以Benchmark为开头,并且参数只有一个 *testing.B类型的参数。
b. 档案名称必须要以"_test"为结尾。
c. 函数格式範例:

func BenchmarkXXX(b *testing.B) { //与性能测试无关的code b.ResetTimer() for i := 0; i < b.N; i++ {  //测试的code } b.StopTimer() //与性能测试无关的code}

3. 如何解释效能测试的测试结果?
程式码範例:(需要可以运行go test -bench)

package mainimport (  "testing")func Add(x, y int) int {  return x + y}func BenchmarkAdd(b *testing.B) {  b.ResetTimer()for i := 0; i < b.N; i++ {    Add(3, 5)  }  b.StopTimer()}

http://img2.58codes.com/2024/20131728U6NBBXuRLI.png

windows和amd64,是作业系统、位元数。
BenchmarkAdd-8 => CPU的核心数。
1000000000 => 执行次数。
0.302 ns/op => 执行一次花费的时间。

4. 效能测试函数中的计时器,做什么用?
StartTimer、StopTimer、ResetTimer是专属于效能测试的计时器。
分别的意思是,开始纪录、停止纪录、重新纪录执行时间。
使用这几个函数,可以避免for迴圈之外的程式码干扰到效能测试的计算。

5. 简易使用指令
go test -bench=. //运行资料夹下全部的benchmark
go test -bench=. -benchmem

http://img2.58codes.com/2024/20131728f1TsN9joqD.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章