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

#04 No-code 之旅 — Next.js 中的 Pre-render 与 Data Fetching

嗨大家!昨天跟大家分享了四种网页渲染方式,那今天来讲讲该怎麽用 Next.js 实作~ 在 Next...

Day 21 BeautifulSoup模组三

今天的影片内容为介绍分析项目清单与表格文件的方法 而在影片的後半部,会带大家离开新手村,爬取一个真正...

DAY14 Kotlin基础 Class 2!兼第二周回顾

昨天有稍微提到 public、private 这样的东西,直接把昨天的程序拿来修改一下: fun m...

Day53. 中介者模式

本文同步更新於blog Mediator Pattern 集中相关对象的之间复杂的沟通与控制方式。...

入门魔法 - AJAX

前情提要 经过上次火属性初阶魔法近距离灼伤手指後。 「就不能让这个火离我远一点吗?远距离魔法不存在吗...