You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go test中-run -参数为何能大幅提升基准测试执行速度?

Go测试中-run -参数的作用解析

核心原因:跳过所有单元测试

Go的go test命令默认会同时执行单元测试(Test开头的函数)和你指定的基准测试。

当你执行go test -bench BenchmarkNexts -benchmem时,虽然指定了要运行的基准测试,但命令还是会先跑一遍所有项目里的单元测试——这就是你看到的5秒初始开销和额外测试输出的来源。

而-run -里的-是个正则表达式,它匹配不到任何标准的单元测试函数名(单元测试都是TestXXX格式,没有以-开头的),所以这个参数会让go test完全跳过所有单元测试,只运行你指定的基准测试,自然启动更快、没有额外开销。

验证方法

你可以去项目的*_test.go文件里找所有Test开头的函数,这些就是没加-run -时额外执行的内容。RoaringBitmap的测试套件里肯定包含不少单元测试,它们的执行带来了那5秒的耗时。

两种命令的差异

  • 无-run -:运行指定基准测试 + 全部单元测试
  • 加-run -:仅运行指定基准测试,跳过所有单元测试

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:02:03