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 秒。

Golang 性能测试指南:Benchmark 测试详解

原文地址: https://www.cveoy.top/t/topic/mT7l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录