[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 main

import (
  "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()
}

https://ithelp.ithome.com.tw/upload/images/20201110/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

https://ithelp.ithome.com.tw/upload/images/20201110/20131728f1TsN9joqD.png


<<:  ISO 27001 机房管理部份之四

>>:  JQuery 学习纪录 ( 6 )

第58天~

这个得上一篇:https://ithelp.ithome.com.tw/articles/10261...

【领域展开 14 式】 Favicon 的好助手!Canva 使用与 5 下搞定网站设定

今天需要疗癒的视觉效果,Menu 再等等.. 跳脱进度,想先做网站 Favicon 的设计 (其实是...

DAY 06 Variable

终於进入到介绍 SASS 特点的区块啦~ 第一个要介绍的就是大名鼎鼎的 变数 Variable 的部...

Day 0x4 UVa10041 Vito's Family

Virtual Judge ZeroJudge 题意 Vito 常拜访亲戚,所以想要找一间和所有亲戚...

Shadow Element:控制 UI 元件的元件

shadow element, 它的命名就透露出它不是个外显的 UI 元件,实际上它的确不会绘制出任...