我想为golang做出一点贡献,并且需要运行基准测试,例如用于编码/ json。
我所有的尝试均失败(go1.13):
❯ 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?
答案 0 :(得分:2)
如果这是对go源树的全新签出,请在引导(即运行all.bash)后进入go / src /下并运行
../bin/go test ./encoding/json -bench=.
或者您可以通过在/ usr / local / go / src下以相同的方式针对已安装的版本运行它。
如果您打算提交性能增强,他们会希望您进行基准测试之前/之后的比较。因此,将基准测试前后运行10到20次,然后使用benchstat
工具比较结果。
../bin/go test ./encoding/json -bench=. -count=10 >after
答案 1 :(得分:0)
我认为这归因于Go模块,但是对我有用的是从stdlib中执行:
cd /usr/local/go/src/encoding/json
go test -run='^$' -bench .