小编Joh*_*ros的帖子

go benchmark and gc: B/op alloc/op

基准代码:

func BenchmarkSth(b *testing.B) {
    var x []int
    b.ResetTimer()
    for i := 0; i < b.N; i++ {
        x = append(x, i)
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

BenchmarkSth-4    50000000    20.7 ns/op    40 B/op    0 allocs/op 
Run Code Online (Sandbox Code Playgroud)

问题:

  • 40 B/op 从哪里来?(非常感谢任何跟踪+说明的方式)
  • 怎么可能有 40 个 B/op 而有 0 个分配?
  • 哪一个会影响 GC 以及如何影响?(B/op 或 allocs/op)
  • 真的有可能使用 append 获得 0 B/op 吗?

memory testing benchmarking garbage-collection go

3
推荐指数
1
解决办法
767
查看次数

标签 统计

benchmarking ×1

garbage-collection ×1

go ×1

memory ×1

testing ×1