当前位置: > > > > 直接使用testing.Benchmark()时设置benchtime
来源:stackoverflow
2024-04-20 13:00:35
0浏览
收藏
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》的详细内容,更多关于的资料请关注公众号!