Golang 性能测试指南:Benchmark 测试详解
Go 语言提供了一个内置的测试框架,可以用于编写和运行性能测试。下面是一个简单的例子:
func BenchmarkSort(b *testing.B) {
nums := make([]int, b.N)
for i := 0; i < b.N; i++ {
nums[i] = rand.Intn(1000)
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
sort.Ints(nums)
}
}
这个例子测试了排序函数的性能。在每个测试迭代中,它随机生成一个包含 'b.N' 个元素的整数数组,并对其进行排序。'b.ResetTimer()' 重置计时器,以便只测量排序函数本身的性能,而不包括数组生成的时间。测试框架会自动运行迭代并报告平均运行时间。
要运行这个测试,可以使用 'go test -bench=.' 命令。'-bench' 标志告诉测试框架只运行基准测试,而 '.' 表示运行当前目录下的所有基准测试。运行结果类似于:
BenchmarkSort-8 10000000 159 ns/op
这表示排序函数平均每次运行需要 159 纳秒。可以使用 '-benchtime' 标志控制测试的时间长度,例如 'go test -bench=. -benchtime=10s' 表示每个测试迭代至少运行 10 秒。
原文地址: https://www.cveoy.top/t/topic/mT7l 著作权归作者所有。请勿转载和采集!