当我使用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
是完成一次迭代所需的近似时间
但是即使在reading the docs之后,我也无法找出B/op
和allocs/op
的含义。
我的猜测是 allocs / op 与垃圾收集和内存分配有关(越少越好)。
任何人都可以给出这些值的含义的一个很好的解释。也很高兴知道为什么上升和主要步骤来减少它们(我意识到这是测试特定的,但可能有一些通用的提示,在许多情况下工作)
allocs/op
表示每个操作(单次迭代)发生了多少个不同的内存分配。
B/op
是每个操作分配的字节数。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(71条)