在golang中运行没有“go test”的基准

时间:2017-04-13 22:06:55

标签: testing go benchmarking

我想在我的应用程序中运行基准测试。那可能吗?如果是的话,我该怎么办?我一直在四处寻找,但到目前为止还没有看到任何迹象。

1 个答案:

答案 0 :(得分:4)

您可以在不运行go test的情况下使用testing.Benchmark

package main

import (
    "fmt"
    "testing"
)

func Fib(n int) int {
    if n <= 0 {
        return 0
    } else if n == 1 {
        return 1
    }
    return Fib(n-1) + Fib(n-2)
}

func main() {
    res := testing.Benchmark(func(b *testing.B) {
        for n := 0; n < b.N; n++ {
            Fib(10)
        }
    })
    fmt.Println(res)
    // (on my mac)
    // 3000000               454 ns/op
}