Go基准测试中的alloc / op和B / op是什么意思?
使用进行基准测试时go test -v -bench=. -benchmem
,会看到以下结果。
f1 10000 120860 ns/op 2433 B/op 28 allocs/opf2 10000 120288 ns/op 2288 B/op 26 allocs/op
根据我的理解:
10000
是迭代次数for i := 0; i < b.N; i++ {
。XXX ns/op
是一次迭代完成所需的大概时间
但即使阅读文档,我无法找出什么B/op
和allocs/op
意味着什么。
我的猜测是allocs / op与垃圾回收和内存分配有关(越少越好)。
任何人都可以很好地解释这些值的含义。也很高兴知道为什么要减少这些步骤以及减少它们的主要步骤(我意识到这是针对测试的,但是在某些情况下可能会有一些通用的提示)
回答:
allocs/op
表示每个操作(单次迭代)发生了多少个不同的内存分配。
B/op
每个操作分配了多少字节。
以上是 Go基准测试中的alloc / op和B / op是什么意思? 的全部内容, 来源链接: utcz.com/qa/435540.html