如何记录测试时间

时间:2014-08-10 08:44:47

标签: testing go

我写了两个函数,现在我想知道,哪个更快。我怎样才能找到它,哪一个更快?

如何通过测试找出哪一个更快?要为此提供计时器吗?

2 个答案:

答案 0 :(得分:7)

更好的是,Go提供了内置的基准测试和测试功能!

创建名为 something_test.go 的文件(必须包含 _test 部分)。

func BenchmarkFunc1(b *testing.B) {
    for i := 0; i < b.N; i++ {
        _ = Func1()
    }
}

func BenchmarkFunc2(b *testing.B) {
    for i := 0; i < b.N; i++ {
        _ = Func2()
    }
}

然后只需运行:go test -bench=. -benchmem

它将打印每个函数占用的时间和内存使用/分配。

价:

答案 1 :(得分:3)

您可以为每个功能编写基准。

例如参见&#34; How to write benchmarks in Go&#34;

// from source_test.go
func BenchmarkFunction1(b *testing.B) {
        // run the Function1 function b.N times
        for n := 0; n < b.N; n++ {
                Function1(10)
        }
}

重复Function2并使用go test -bench=.

检查结果