How do you time a function in Go and return its runtime in milliseconds?

前端 未结 5 735
清酒与你
清酒与你 2021-01-31 03:10

How do you time a function in Go and return its runtime in milliseconds?

5条回答
  •  醉酒成梦
    2021-01-31 03:37

    Use the Go testing package to benchmark the function. For example,

    package main
    
    import (
        "fmt"
        "testing"
    )
    
    // the function to be benchmarked
    func Function(n int) int64 {
        n64 := int64(n)
        return n64 * n64
    }
    
    func BenchmarkFunction(b *testing.B) {
        n := 42
        for i := 0; i < b.N; i++ {
            _ = Function(n)
        }
    }
    
    func main() {
        br := testing.Benchmark(BenchmarkFunction)
        fmt.Println(br)
    }
    

    Output:

    500000000            4.22 ns/op
    

    You can also use the Go gotest command to run benchmarks.

提交回复
热议问题