相关疑难解决方法(0)

在基准测试中,allocs/op和B/op的含义是什么?

当我运行我的基准时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
Run Code Online (Sandbox Code Playgroud)

根据我的理解:

  1. 10000是迭代次数for i := 0; i < b.N; i++ {.
  2. XXX ns/op 是一次迭代完成所需的大致时间

但即使阅读了文档后,我也无法找到什么B/opallocs/op意思.


我的猜测是,allocs/op与垃圾收集和内存分配有关(越少越好).

任何人都可以对这些值的含义做出很好的解释.同样很高兴知道为什么要上升和减少它们的主要步骤(我意识到这是测试特定的,但可能有一些通用提示在许多情况下都有效)

benchmarking go

30
推荐指数
1
解决办法
5178
查看次数

标签 统计

benchmarking ×1

go ×1