在VScode中具有go扩展名,对方法进行基准测试只需单击[run benchmark]
,然后立即在vscode控制台中将其输出,然后是运行的命令和输出:
Running tool: /usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$
goos: darwin
goarch: amd64
pkg: github.com/zyxan/benchmarks
BenchmarkRandomStringGeneration2-4 10000000 147 ns/op 80 B/op 3 allocs/op
PASS
ok github.com/zyxan/benchmarks 1.654s
Success: Benchmarks passed.
现在,如果我想在终端上重现这样的命令,我只是复制它
/usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$
将其粘贴到我的终端会话中会导致以下输出:
❯ /usr/local/bin/go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkRandomStringGeneration2$
zsh: no matches found: -run=^$
为什么会导致差异?
答案 0 :(得分:0)
如果您使用的是vs-code,则可以使用same提供的vs-code终端来运行命令,它将使用同一命令显示基准测试的输出。它将解析命令。
go test -benchmem -run=^$ github.com/zyxan/benchmarks -bench ^BenchmarkParsingJSON$
在Windows上安装的vs-code终端中使用上述命令。
正如@Peter在Linux终端上建议的那样,您应该使用单个反逗号来解析shell命令
go test -benchmem -run='^$' github.com/zyxan/benchmarks -bench '^BenchmarkRandomStringGeneration2$'
在-run
标记内,您需要传递正则表达式标记。