正确运行Go基准测试的输出

时间:2020-04-07 07:01:48

标签: performance go testing benchmarking

当我使用以下命令在此repository(仅是go项目的占位符)上运行基准测试时:

 go test -run="^$" -bench="^BenchmarkLessorRevoke1000$"  ./... 

我得到的输出是this,显示基准测试结果:

BenchmarkLessorRevoke1000-8      1033351          1141 ns/op

,但也带有大量其他测试输出。如何使它仅显示基准,而不显示测试输出?

1 个答案:

答案 0 :(得分:4)

您可以为-run工具的go test参数提供一个虚拟名称,并提供没有与该名称匹配的任何测试,则仅运行基准测试。

您已经用"^$"进行了介绍,所以一切都很好,您还可以使用一种模式将基准与"^BenchmarkLessorRevoke1000$"进行匹配。

问题是您正在使用./...在整个程序包和/或子目录中运行go测试。

您应该指定要在每个软件包的基础上运行的基准。

go test -run="$^" -bench="^BenchmarkLessorRevoke1000$" .
go test -run="$^" -bench="^BenchmarkLessorRevoke1000$" ./pkg1/
go test -run="$^" -bench="^BenchmarkLessorRevoke1000$" ./pkg2/

Also be mindful, if you do want to run benchmarks in mass you should do so on a per-package basis.

针对多个软件包运行基准测试将同时执行它们,从而使结果产生偏差。

相关问题