Golang获得了一个动作的处理时间

时间:2015-05-07 10:18:12

标签: go

我真的很感兴趣花了多少时间来做这个动作。有人有什么好主意吗?或任何图书馆。我用简单的方式做了,但似乎是错误的方式。因为我确实在go

上有更多的工作经验

我有那段代码:

package main

import (
    "fmt"
    "time"
)

func main() {
    var d int = 0
    var beginTime = time.Now()
    for i := 0; i < 100000; i++ {

        for c := 0; c < 100; c++ {
            d = 1
        }
    }
    var endTime = time.Now()
    fmt.Println(beginTime, endTime)
    fmt.Println(time.Since(beginTime))
    fmt.Println(d)
}

1 个答案:

答案 0 :(得分:1)

使用built-in Benchmarks

  

示例基准测试函数如下所示:

func BenchmarkHello(b *testing.B) {
    for i := 0; i < b.N; i++ {
        fmt.Sprintf("hello")
    }
}
     

基准函数必须运行目标代码b.N次。在benchark执行期间,b.N被调整,直到基准函数持续足够长的时间以便可靠地计时。输出

BenchmarkHello    10000000    282 ns/op
     

表示循环以每循环282 ns的速度运行10000000次。

编辑:如果你想测量在运行时做某事的时间,而不是在你的测试中,你的方式看起来很好。