RSS
菜单

Go 基准测试 benchmark:ns/op、B/op 与 allocs/op 分析

函数 BenchmarkXxx(b *testing.B):循环 for i := 0; i < b.N; i++ 包裹被测代码;运行 go test -bench=. -benchmem,输出 ns/op(每次耗时)、B/op(每 op 分配字节)、allocs/op(分配次数)。关键:① 防止编译器优化掉结果——结果赋给包级变量(var sink = result);② 可设子基准 b.Run("name", func(b *testing.B)...) 对比多组;③ -benchtime=3s 控时长、-count=5 多次取均值;④ b.ReportAllocs() 或 -benchmem 看分配。

下载推广海报

圈内讨论推广海报

《Go 基准测试 benchmark:ns/op、B/op 与 allocs/op 分析》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。