XPerf
语言Nim

Nim 性能指南(v0)

由 docs/guide-src/ 组装。脚手架核对清单——不是有测量支撑的手册。把 lint 升为 error 前请先测量。

范围:Nim(启发式 kit)。 加速数字会标明本地 bench、上游来源,或标为暂定。语料库残留计数是 lint 命中次数,不是墙钟耗时节省。

目录

1. 序列

已知长度或迭代次数时,优先 newSeqOfCap / setLen + 按索引写入。热循环里反复 .add 会重新分配。配套:nm-seq-no-capacity。

Lint: nm-seq-add-hot(默认 off,G3 后); nm-seq-no-capacity(empty seq + .add size-hinted; 默认 hint)

2. 字符串

在 Nim 2.2.12、-d:release 下,对 20000 片做 &= 比 newSeq 再 join 更快(约 0.79×)。建议改用 join 的 lint 已移除。见 evidence/_removed/nm-string-amp-in-loop.REMOVED.md。

3. I/O

不要把 echo 放进热循环;门控或缓冲。

Lint: nm-echo-hot(默认 off,G3 后)

Lint 对照

IDSmell默认
nm-seq-add-hot循环内 seq .addoff(G3)
nm-echo-hot循环内 echooff(G3)
nm-seq-no-capacity空 seq + 有大小提示的 .addhint

另见

规则 ID:rule-ids.md。证据策略:evidence-policy.md。流程门槛:根目录 AGENT.md。