长沙快速建站模板,如何做一名网站编辑,如何做汽车的创意视频网站设计,wordpress 标签挂件Go语言自带了一个强大的测试框架#xff0c;其中包括基准测试#xff08;Benchmark#xff09;功能#xff0c;基准测试用于测量和评估一段代码的性能。 我们可以通过在Go的测试文件中编写特殊格式的函数来创建基准测试。测试文件的命名遵守原函数名称_test.go 的格式。
基… Go语言自带了一个强大的测试框架其中包括基准测试Benchmark功能基准测试用于测量和评估一段代码的性能。 我们可以通过在Go的测试文件中编写特殊格式的函数来创建基准测试。测试文件的命名遵守原函数名称_test.go 的格式。
基准测试函数的名字必须以Benchmark开头后面跟着的是想要命名的测试名字函数的唯一参数是一个指向*testing.B的指针。例如
func BenchmarkMyFunction(b *testing.B) {for i : 0; i b.N; i {// 执行你想要测试性能的代码}
}在基准测试函数中将想要测试的代码放在一个针对b.N的循环中。b.N是一个非常大的数Go测试框架会自动调整它的值以使得基准测试函数运行的时间足够长从而得到更准确的结果。
通过在命令行中运行go test -bench.来执行基准测试。-bench标志后面跟着的是一个正则表达式匹配你想要运行的基准测试函数的名字. 表示匹配所有文件。
go test -bench.基准测试结果会显示每次操作的平均时间可以通过这个结果来评估你的代码的性能或者对比不同版本或不同实现的性能差异。
范例
func BenchmarkTest(b *testing.B) {str : for i : 0; i b.N; i {str a}
}输出
goos: darwin
goarch: arm64
pkg: awesomeProject3
BenchmarkTest
BenchmarkTest-12 1000000 28001 ns/op
PASSgoos: darwin基准测试运行操作系统goarch: arm64基准测试运行的处理器架构pkg: awesomeProject3基准测试运行在的 Go 包BenchmarkTest基准测试函数名BenchmarkTest-12基准测试及其并行度。这里是在并行度为 12 的情况下运行。1000000基准测试函数运行次数28001 ns/op每次运行基准测试函数需要的时间单位是纳秒。这里是为 28001 纳秒即 0.028001 毫秒。PASS表示基准测试通过