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()
}
windows和amd64,是作业系统、位元数。
BenchmarkAdd-8 => CPU的核心数。
1000000000 => 执行次数。
0.302 ns/op => 执行一次花费的时间。
4. 效能测试函数中的计时器,做什麽用?
StartTimer、StopTimer、ResetTimer是专属於效能测试的计时器。
分别的意思是,开始纪录、停止纪录、重新纪录执行时间。
使用这几个函数,可以避免for回圈之外的程序码干扰到效能测试的计算。
5. 简易使用指令
go test -bench=. //运行资料夹下全部的benchmark
go test -bench=. -benchmem
嗨大家!昨天跟大家分享了四种网页渲染方式,那今天来讲讲该怎麽用 Next.js 实作~ 在 Next...
今天的影片内容为介绍分析项目清单与表格文件的方法 而在影片的後半部,会带大家离开新手村,爬取一个真正...
昨天有稍微提到 public、private 这样的东西,直接把昨天的程序拿来修改一下: fun m...
本文同步更新於blog Mediator Pattern 集中相关对象的之间复杂的沟通与控制方式。...
前情提要 经过上次火属性初阶魔法近距离灼伤手指後。 「就不能让这个火离我远一点吗?远距离魔法不存在吗...