当我运行基准测试时go test -v -bench=. -benchmem
,我看到以下结果。
f1 10000 120860 ns/op 2433 B/op 28 allocs/op
f2 10000 120288 ns/op 2288 B/op 26 allocs/op
根据我的理解:
-
10000
是迭代次数for i := 0; i < b.N; i++ {
.
-
XXX ns/op
是完成一次迭代所需的大约时间
但即使之后阅读文档 https://golang.org/pkg/testing/,我查不出什么B/op
and allocs/op
mean.
我的猜测是 allocs/op 与垃圾收集和内存分配有关(越少越好)。
任何人都可以对这些值的含义给出一个很好的解释。另外,很高兴知道为什么要执行上升步骤和主要步骤来减少它们(我意识到这是特定于测试的,但可能有一些在许多情况下有效的通用提示)
allocs/op
表示每个操作发生了多少个不同的内存分配(单次迭代)。
B/op
是每个操作分配了多少字节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)