如何在Go中计时函数并以毫秒为单位返回其运行时?

推荐答案

使用Go testing软件包对功能进行基准测试.例如

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)
}

输出:

500000000            4.22 ns/op

您还可以使用Go gotest命令来运行基准测试.

Go相关问答推荐

将Go程序导出到WASM—构建约束排除所有Go文件

在Go中旋转矩阵

golang regex基于关键字拆分字符串

无法使用exec从管道中读取.Go中的命令

如果第一次匹配条件,如何跳过切片中的值

如何在 Go 服务中导入 monorepo 中的包?

Github Actions Go lambda 项目不同的 sha256sums

Exchange Web 服务 - 使用 soap xml 请求查找所有未读邮件

如何使用 GolangCI 删除未使用的导入

判断一个区域内的纬度/经度点

使用 Grafana alert 在几分钟内重复alert

golang 中的可变参数函数

将 big.Int 转换为 [2]int64,反之亦然和二进制补码

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

仅在工作日运行 cron

如何修改go gin的默认端口?我的 8080 端口正在使用中

从 Makefile 运行时权限被拒绝

使用 Golang SQL 驱动程序连接到snowflake

gqlgen go,通过添加一个解析器来减少数据库调用

在 Go 中表达函数的更好方法( struct 方法)