我看了一些https://github.com/RoaringBitmap/roaring分的基准测试

使用-run -运行特定基准测试时(如第comments条所述): go test -bench BenchmarkNexts -benchmem -run -它似乎执行得更快,至少在没有-run -的情况下运行它似乎有一些5秒的初始开销,如下所示:

==roaring==
{1,2,3,4,5,100,1000}
{3,4,1000}
{}
Cardinality:  7
Contains 3?  true
1
3
4
5
1000

Wrote  22  bytes
I wrote the content to a byte stream and read it back.
size before run optimize: 1810 bytes, and after: 38 bytes.

由于-run标志运行基于正则表达式模式的测试,因此这里似乎排除了某些内容,但实际上两者运行相同测试的内容,唯一的区别是初始开销.

推荐答案

Go test"-run-"标志执行测试的速度要快得多

这是预期中的结果.当您不运行任何测试时,速度会更快.

要查看正在执行的是什么,请在go test次执行中添加-v选项.

不运行测试:

go clean -testcache && go test -bench BenchmarkNexts -benchmem -run - -v

运行所有测试:

go clean -testcache && go test -bench BenchmarkNexts -benchmem -v`

或者,由于-run .相当于所有测试,

go clean -testcache && go test -bench BenchmarkNexts -benchmem -run . -v

Go is a tool for managing Go source code.

测试标志

-run regexp
    Run only those tests, examples, and fuzz tests matching the regular
    expression.

-v
    Verbose output: log all tests as they are run.

构建和测试缓存

GO命令还缓存成功的包测试结果.有关详细信息,请参阅"Go Help Testing".运行‘Go lean-testcache’将删除所有缓存的测试结果(但不会删除缓存的生成结果).

Go相关问答推荐

从Kafka到Clickhouse的实时消费数据

运行add. inf,这样我们就可以在app.conf中使用. inf参数了?

Go协议缓冲区导入问题

golang有int32溢出吗?

无法在32位计算机上运行Golang应用程序

当我有外键时,如何使用 GORM 创建数据库的新条目

Go-如何在递归函数中关闭通道

Golang chromedp Dockerfile

此 Golang 程序中的同步问题

当客户端同时是服务器时,需要什么 mTLS 证书?

Golang 中的泛型类型转换

Golang Oauth2 服务帐户返回空刷新令牌字符串

函数实现接口时的模式名称是什么?

使用自定义处理程序 nats golang 保留订阅方法

为超时的单元测试创​​建 deadlineExceededError:true

如何在golang中按字符a对字符串数组进行排序

try 运行 docker-compose up -d 时出现错误

关系不存在 GORM

关于GO的几个问题

Golang 与 Cassandra db 使用 docker-compose:cannot connect (gocql)