【问题标题】:How to record the time for testing如何记录测试时间
【发布时间】:2014-08-10 16:48:36
【问题描述】:

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

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

【问题讨论】:

    标签: testing go


    【解决方案1】:

    更好的是,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

    它将打印每个函数花费了多长时间以及内存使用/分配。

    参考:

    【讨论】:

      【解决方案2】:

      您可以为每个函数编写一个基准。

      参见例如“How to write benchmarks in Go

      // 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=. 检查结果

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        • 1970-01-01
        • 2017-06-02
        • 2016-09-15
        • 2018-06-08
        • 1970-01-01
        相关资源
        最近更新 更多