DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

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

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

函数 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 分析》完整推广海报
REPLIES

回复

0 条回复
暂无回复。