XPerf
语言Go证据

gp-make-hot — 每次迭代创建([]byte) vs 重用 / 单个切片

主张

在这台机器上的测量:主要热案例 make_each_iter 比率前/后 ~160.26×(之后更快)。默认严重性保持 off。仅凭这一配置不要升级为 error——比率很高,但策略/默认设置以及 G3 OK-idiom 历史保持严重性不变。

如何测量

  • 测试工具:packages/goperf/examples/bench/evidence_gp.go
  • 协议:预热=3;9轮的中位数;在适用的地方进行垃圾收集/收集
  • 原始行:gp-make-hot.jsonl

运行时(本证据文件)

FieldValue
时间2026-10-23 亚洲/上海(机器时钟;JSONL 时间戳为 UTC)
Toolchaingo1.27.3
使用 (reuse_buf) 后的中位数0.057417 毫秒 (操作=200000,比率=1.000000)
中位数之前(make_each_iter)9.201458 毫秒(操作=200000,比例=160.256684)
之后的中值(single_slice_fill)0.362708 毫秒(操作=50000,比例=1.000000)
make_append_slices 之前的中位数2.214292 毫秒 (操作次数=50000, 比率=6.104889)
主要比率 前/后~160.26× (make_each_iter)

方向和绝对毫秒数对机器/工具/选项敏感。在工具链或机器更改后,请重新运行测试工具。

与 lint 的对应

goperf-lint gp-make-hot 默认保持 off。建议升级:否。

限制

  • 微基准;不是应用程序配置文件。
  • 小 N 行可能接近计时器噪声;对于比率声明,建议使用热(非小)情况。
  • I/O 规则(print/echo/puts/writeln)丢弃到 /dev/null — 取决于环境。