【发布时间】:2016-02-23 21:24:46
【问题描述】:
当我使用 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 与垃圾收集和内存分配有关(越少越好)。
谁能很好地解释这些值的含义。也很高兴知道为什么要增加和减少它们的主要步骤(我意识到这是特定于测试的,但可能有一些通用提示在许多情况下都有效)
【问题讨论】:
标签: go benchmarking