首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对golang标准库的包进行基准测试?

如何对golang标准库的包进行基准测试?
EN

Stack Overflow用户
提问于 2019-09-10 01:58:24
回答 2查看 381关注 0票数 3

我想为golang做一点贡献,并需要运行基准测试,例如编码/json。

我的所有尝试都失败(go1.13):

代码语言:javascript
运行
复制
❯ go test -bench encoding/json
build .: cannot find module for path .

❯ go test encoding/json
ok      encoding/json   1.412s

❯ go test -bench std/encoding/json
build .: cannot find module for path .

❯ go test std/encoding/json
# std/encoding/json
package std/encoding/json (test)
        imports internal/testenv: use of internal package internal/testenv not allowed
FAIL    std/encoding/json [setup failed]
FAIL

❯ go test std
ok      archive/tar     (cached)

❯ go test -bench std
build .: cannot find module for path .

那么我如何独占地测试编码/json呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-10 02:09:08

如果这是go源代码树的最新签出,则在引导(即运行all.bash)之后,转到go/src/下并运行

代码语言:javascript
运行
复制
 ../bin/go test ./encoding/json -bench=.

或者,您也可以在/usr/local/go/src下以同样的方式对已安装的版本运行它。

如果您计划提交性能增强,他们会希望您进行之前/之后的基准测试比较。因此,在前后运行基准测试10-20次,并使用benchstat工具比较结果。

代码语言:javascript
运行
复制
../bin/go test ./encoding/json -bench=. -count=10 >after
票数 3
EN

Stack Overflow用户

发布于 2019-09-10 02:07:42

我相信这是由于Go模块造成的,但对我来说起作用的是从stdlib中执行:

代码语言:javascript
运行
复制
cd /usr/local/go/src/encoding/json
go test -run='^$' -bench .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57859015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档