登录
首页 >  Golang >  Go问答

直接使用testing.Benchmark()时设置benchtime

来源:stackoverflow

时间:2024-04-20 13:00:35 179浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《直接使用testing.Benchmark()时设置benchtime》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

在 go 中,我在 main() 中手动运行测试,如下所示:

func main() {
  br := testing.benchmark(benchmarkconnectionopen)
  fmt.println(br.string() + br.memstring())
}

我想做的是为所有基准设置“基准时间”。据我所知,在测试时(例如运行 go test),它会作为如下标志传入:

-benchtime=100x

但是当我刚刚在 main() 中运行时如何设置这个标志?我尝试过 flag.set() (如下),但没有骰子。

flag.Set("test.benchtime", "100x")

解决方案


想通了!医生们催促了我,但花了点时间才把它拼凑起来。文档:

// if f depends on testing flags, then init must be used to register
// those flags before calling benchmark and before calling flag.parse.
//
// if f calls run, the result will be an estimate of running all its
// subbenchmarks that don't call run in sequence in a single benchmark.

这转化为:

func main() {
  testing.init()
  flag.parse()
  br := testing.benchmark(benchmarkconnectionopen)
  fmt.println(br.string() + br.memstring())
}

然后运行:

go run main.go  -test.benchtime 100x

以上就是《直接使用testing.Benchmark()时设置benchtime》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>