XPerf
指南

规则回归覆盖

截至 2026-10-22(亚洲/上海)。空/反向深度分析 已落地(rb-hash-merge-in-loop 固定装置/消息;cx-string-append-unreserved / at-includes-hot 文档;测量为无用的墓碑;无严重性升级)。证据填充批次 A:goperf/pyperf/cppperf/phpperf/rustperf/luaperf/rubyperf;nim 被阻止。合同:playbook.md § 规则回归。每套件关卡:packages/*/docs/evidence-policy.md。气味:smell-catalog.md

柱

  • 坏 / 好:packages/<kit>/*-lint/fixtures/ 下的 lint 固件
  • 证据:packages/<kit>/evidence/ 下的 .md 和 .jsonl(速度门)
  • 严重性:包默认 / 策略(cperf·jsperf --preset app; jvmperf 策略映射; zperf 历史上所有发现都会导致 CI 失败)
  • 待定措施:在提交/升级到 error 之前需要前/后 JSONL(兄弟自己的基准 — 该矩阵不会发明比率)

固定装置测试证明规则仍然有效;证据证明它仍然意味着速度。语料库残余计数 ≠ 两者。


范围 (2026-10-27): 默认匹配是 --scope all(或相应的套件等效项)跨套件;选择 --scope loop 来启用之前仅限循环的行为。以前包含 in-loop 的标识符已重命名为 *-hot 并被作废;详见每个套件的 docs/rule-ids.md 重命名表。

^ cperf(cp-alloc-hot – cp-printf-hot – cp-strlen-in-cond – cp-strcat-hot) (英语).

测试夹具使用描述性名称(而不是 cp-alloc-hot.c)。默认值来自 docs/evidence-policy.md / --preset app。

规则错误设置良好 / 负面证据 md+jsonl默认严重性备注
cp-alloc-hotbad/cp-alloc-hot_malloc_loop.c是的 (arena_hoisted.c,…)是 evidence/cp-alloc-hot.*错误测量门存在
cp-realloc-grow-onebad/cp-realloc-grow-one_realloc_grow.c是 (capacity_doubling.c, realloc_wrapper.c)是错误测得约 12.6 倍 realloc 增长相比翻倍
cp-printf-hotbad/cp-printf-hot_printf_loop.c是 (dump_*, ifdef_dump_*, treeview_*, …)是关闭热 ~4.8× unbuf/buf;#if 0 ~1× → 保持关闭
cp-strlen-in-condbad/cp-strlen-in-cond_strlen_cond.c是的 (cp-strlen-in-cond_strlen_hoisted.c, …)还没有提示没有实际运行时间基准;仅语料真阳性
cp-strcat-hotbad/cp-strcat-hot_strcat_loop.c是的 (cp-strcat-hot_strcat_once.c)还没有关闭G3 降级(CLI/路径 OK-惯用法);没有实际运行时间基准
cp-sprintf-hotbad/cp-sprintf-hot_sprintf_loop.c是jsonl提示微基准测试在一个形状上约 13.9×;保持提示;未经过语料库分类
cp-fopen-hotbad/cp-fopen-hot_fopen_loop.c是jsonl提示单个形状微基准约423.4×;保持提示;未进行语料库分流
cp-gettime-hotbad/cp-gettime-hot_gettime_loop.c是jsonl提示微基准 ~33.2× 在一个形状上;保持提示;未经过语料库筛选
cp-wide-bool-flagsbad/cp-wide-bool-flags_ints.c是的 (cp-wide-bool-flags_bits.c)jsonl提示微基准 ~19.1× 在一个形状上; 保持提示; 未经过语料库分类

jsperf(slug ID)

描述性夹具名称。默认值:--preset app(jp-console-hot=off)。

规则错误夹具良好 / 消极证据 md+jsonl严重性 默认备注
jp-alloc-hotbad/jp-alloc-hot_new_in_loop.js, jp-alloc-hot_push_object.js是 (prealloc.js, jp-alloc-hot_reuse_buffer.js, …)是关闭 (应用)~19× / ~6.4× 实际时间(分配/GC);G3 OK-习惯降级
jp-console-hotbad/jp-console-hot_console_loop.js是 (jp-console-hot_console_outside_loop.js)是关闭(应用)/ 提示如果丢弃 stdout 大约 1328×;依赖环境 → 不是 CI 错误
jp-delete-shapebad/jp-delete-shape_delete.js是 (no_delete.js, …)是 evidence/jp-delete-shape.*关闭 (应用)G3 OK-惯用语 降级
jp-delete-array-holebad/jp-delete-array-hole_holey_delete.js是 (no_holey_delete.js,…)是 evidence/jp-delete-array-hole.*错误已测量
jp-string-plus-in-loop已移除(evidence/_removed/fixtures/ 下的测试用例)纪念碑_removed/ 下的 jsonl已移除匹配形状时 push+join 并非约 2 倍
jp-map-filter-chainbad/jp-map-filter-chain_map_filter_chain.js是 (jp-map-filter-chain_single_map.js, 注释夹具)是提示35000 行 ~4.6×/9.8×;3 行过滤+映射 1.28×;保持提示
jp-regex-ctor-hotbad/jp-regex-ctor-hot_ctor_loop.jsgood/jp-regex-ctor-hot_ctor_once.js, pattern-variesjsonl提示Node 26 修复模式 ~4.4×;循环绑定未报告
jp-json-hotbad/jp-json-hot_json_loop.jsgood/jp-json-hot_json_once.js, 文本变化jsonl提示Node 26 未更改文本约 140×;未报告 rows[i]
jp-dom-query-hotbad/jp-dom-query-hot_query_loop.jsgood/jp-dom-query-hot_query_once.js, selector-variesjsonl提示Node 26 小型 linkedom 文档 ~16×;循环绑定未报告
jp-intl-datetimeformat-hotbad/jp-intl-datetimeformat-hot_format_loop.jsgood/jp-intl-datetimeformat-hot_format_once.js, 地区变化jsonl提示Node 26 ~36×;循环绑定未报告
jp-readfile-sync-hotbad/jp-readfile-sync-hot_read_loop.jsgood/jp-readfile-sync-hot_read_once.js,for-of 头部,路径变化jsonl提示仅正文;Node 26 当路径保持不变时 ~114×
jp-clock-hotbad/jp-clock-hot_clock_loop.jsgood/jp-clock-hot_clock_once.js,await 循环,嵌套函数/箭头函数jsonl提示紧密循环 ~26×/~19×;await 循环未报告;跳过嵌套函数体
jp-query-all-starbad/jp-query-all-star_star_query.js, jp-query-all-star_in_template.jsgood/jp-query-all-star_narrow.js, template narrow尚无提示full-tree *; 消息未说明缓存该节点; 看到模板脚本
jp-execjs-in-timerbad/jp-execjs-in-timer_interval.jsgood/jp-execjs-in-timer_once.js还没有提示在 setInterval/setTimeout 中构建脚本;安装一次 + 短时间清理是干净的
jp-clone-per-eventbad/jp-clone-per-event_structured.js、jp-clone-per-event_json_roundtrip.jsgood/jp-clone-per-event_field.js、无关克隆还没有提示仅事件类参数(e/event/…)

zperf(zp-alloc-hot–zp-fixed-size-alloc-hot)

所有28个配对固定装置。证据位于 packages/zperf/evidence/(Zig 0.17.0 -Ofast,2026-10-21)。政策:packages/zperf/docs/evidence-policy.md。CLI 在任何发现上仍然失败;候选错误 = 预设生效时政策升级。

规则坏好证据rules.zig sev备注
zp-alloc-hot是是是警告~1.4× GPA 对比 arena — 温和;保持警告
zp-append-without-reserve是是是信息~2.1× 添加保留
zp-page-allocator-small是是是警告~341× 页面 vs GPA — 候选错误
zp-debug-allocator是是不适用警告仅限静态(模式切换)
zp-large-struct-by-value是是不确定信息ReleaseFast 省略的微基准
zp-print-hot是是是警告~6e4× 打印对比静默 — 环境输入/输出,不升级
zp-unbuffered-io是是是警告~49× 空与 4KiB — 候选错误
zp-missing-free是是不适用警告正确性(泄漏)
zp-extern-struct-padding是是是警告~1.2× 填充步幅 — 适中
zp-broad-runtime-safety是是待定警告需要 ReleaseSafe 措施
zp-可打包布尔值是是待定信息密度
zp-usize-index-field是是待定信息密度
zp-aos-single-field是是是提示~6.6× AoS 对 SoA
zp-catch-unreachable-alloc是是不适用警告正确性(未定义行为)
zp-oversized-enum-tag是是不适用信息静态大小/ABI
zp-可选标量字段是是待定信息密度
zp-布尔数组是是是信息~30× 布尔数组 vs 位集
zp-静态字符串映射是是是信息~2.5× 静态字符串映射
zp-runtime-div-hot是是是提示~12× 模与掩码
zp-queue-ordered-remove是是是警告~466× orderedRemove 与 ring — 候选错误
zp-读取时移动是是是警告~17× copyForwards 与 cursor — 潜在错误
zp-per-packet-alloc是是是(共享 zp-alloc-hot)警告热路径分配;相同 ~1.4×
zp-不变浮点除法是是是提示~2.0× 浮点除法 vs 倒数
zp-map-put-without-ensure是是是信息~2.8× 映射确保
zp-catch-unreachable-io是是不适用警告正确性
zp-arena-reset-free-all是是是警告~3.2× free_all 对比 retain
zp-create-destroy-hot是是是警告~11× 创建/销毁 vs 池 — 潜在错误
zp-fixed-size-alloc-hot是是是警告~8.5× 固定分配 vs 池 — 候选错误

jvmperf (jp-boxed-primitive-collection–jp-non-static-field-updater) — 摘要

ID 是 jvmperf jp-* 标识,而不是 jsperf。示例:大多是 bad/<slug>.* + 匹配的 good/;某些集合/装箱规则仅限 Kotlin;jp-boxed-stream / jp-non-static-field-updater 仅限 Java。vt-unsafe-threadlocal-pool 仅为指导,在 jvmperf-lint/fixtures/guide/ 下(不随包发布)。

规则不良设备良好 / 消极证据 md+jsonl严重性 默认备注
jp-boxed-primitive-collection是(java+kt)是是错误~5.96× STATIC-VS-HOTSPOT
jp-string-concat-hot是 (java+kt)是是错误J23 ~14.2×
jp-regex-hot是 (java+kt)是是提示J26 ~1.36×
jp-format-hot是(Java+KT)是是错误约17×
jp-unpresized-collection是 (java+kt)是是提示部分 ~1.6×
jp-boxed-stream是(Java)是是错误J32 ~149×
jp-exception-control-flow是(Java+KT)是是错误J32 ~64×
jp-legacy-synchronized-type (已移除)是 (java+kt,已归档)是是 (~1.08×)—测量无胜利;墓碑 _removed/
jp-多个布尔字段 (已移除)是 (java+kt,已归档)是是 (1.0×)—COH 无占用优势;墓碑 _removed/
cx-sstream-in-loop (已移除)已归档已归档-O2 下 1.24×—字符串流重用;墓碑
pp-regex-compile-in-loop (已移除)已存档已存档小于 3×—CPython 缓存 re.compile; 墓碑
rs-map-new-in-loopbad/rs-map-new-in-loop_map_loop.rs是是提示两次安静的 rustc 1.99 运行大约 1.51× 和 1.53×;已恢复
pp-datetime-format-in-loop (已删除)已归档已归档不提升—更改输入无法跳过调用
gp-time-parse-in-loop (已删除)已归档已归档不提升—输入更改无法跳过调用
rb-date-parse-in-loop (已删除)已归档已归档不提升—更改输入无法跳过调用
jp-enum-key-hash-collection是 (java+kt)是是错误EnumMap ~2.1×
jp-collection-chain是 (kt)是是错误JDK 27 / Kotlin 2.4.21 ~265×
jp-value-class-boxing是 (kt)是是错误JDK 27 ~4.0× 时间,~5× B/操作
jp-lambda-to-non-inline-hot是 (kt)是是错误JDK 27 分配 ~244×;时间 ~0.47×
jp-lazy-default-mode是 (kt)是仅 md 存根提示待定 — 情境懒加载
jp-data-copy-hot是 (kt)是是错误JDK 27 ~208× 时间,分配仍然 ~10001×
jp-android-sparse-array是是md 桩提示待定 ART
jp-log-hot是是是错误J32 ~28×(调试关闭)
jp-sleep-polling是是md 存根提示待定的睡眠设计
jp-finalize是是md stub提示待完成/Cleaner
jp-expensive-alloc-hot是是是提示负 tiny-pool
jp-热-重-分配–jp-用户界面-文本-追加是是中等存根提示待定 ART/设备
jp-baos-tobytearray-copy是是是错误J32 ~12.8×
jp-热负载复制是是是错误J32 ~15.8×
vt-unsafe-threadlocal-pool仅作指南指南md 存根 (vt-unsafe-threadlocal-pool.md)—未发布 / 先指南
jp-client-factory-recreate是是是错误J32 HttpClient ~5e5×
jp-string-intern-hot是是是错误J32 intern ~6.6×
jp-non-static-field-updater是 (Java)是是提示创建 ~165×;增加 ~1.0×

今天的 CLI 仍可能在任何发现上失败;策略严重性是保持/升级合同,直到预设到位。



脚手架证据合同: 在 JSONL 存在之前,每条脚手架规则必须有一个命名的待处理存根 packages/<kit>/evidence/<ID>.md(不仅仅是一个文件夹的 README)。这满足了注册表的一致性,而无需发明比例。

goperf (gp-make-hot–gp-defer-hot) — 语料库就绪

规则坏的装置好的装置证据默认备注
gp-make-hotbad/gp-make-hot_make_loop.go是是关G4 ~265× make-each;保持关闭(G3 可用成语)
gp-string-plus-hotbad/gp-string-plus-hot_string_plus.go是是关闭G4 ~2919× += 与 Builder;保持关闭
gp-fmt-hotbad/gp-fmt-hot_fmt_loop.go是是关闭G4 ~1.8–2.8× fmt 对比 strconv;保持关闭
gp-append-nil-slicebad/gp-append-nil-slice_append_grow.gogood/gp-append-nil-slice_presize.go是提示G4 ~12.2× append 增长 vs 预设大小
gp-defer-hotbad/gp-defer-hot_defer_loop.gogood/gp-defer-hot_close_each.go + 闭包是提示G4 ~33× 循环中的 defer 与 每次关闭
gp-regexp-compile-hotbad/gp-regexp-compile-hot_compile_loop.gogood/gp-regexp-compile-hot_compile_once.gojsonl提示微基准 ~7.1× 对一个形状;保留提示;未经过语料库分流
gp-json-marshal-hotbad/gp-json-marshal-hot_marshal_loop.gogood/gp-json-marshal-hot_marshal_once.gojsonl提示微基准测试在一个形状上大约快 368.4 倍;保留提示;未经过语料库筛选
gp-reflect-hotbad/gp-reflect-hot_reflect_loop.gogood/gp-reflect-hot_reflect_once.gojsonl提示微基准 ~1×,无实际开销;保持提示

pyperf(pp-str-plus-hot–pp-print-hot)——语料库准备就绪

规则坏的装置好的装置证据默认备注
pp-str-plus-hotbad/pp-str-plus-hot_str_plus.py是是关闭G4 ~5.5× += 与 join;保持关闭
pp-list-plus-rebindbad/pp-list-plus-rebind_list_plus.py是是提示G4 ~1117× list+ 重新绑定;保持提示
pp-print-hotbad/pp-print-hot_print_loop.py是是关闭G4 ~3.4× 打印循环;保持关闭
pp-json-hotbad/pp-json-hot_json_loop.pygood/pp-json-hot_json_once.pyjsonl提示微基准约81.6×在一个形状上;保持提示;未经过语料库筛选
pp-deepcopy-hotbad/pp-deepcopy-hot_deepcopy_loop.pygood/pp-deepcopy-hot_deepcopy_once.pyjsonl提示微基准测试在一个形状上约快 21.8×;保留提示;未按语料库分类
(已移除 — 无标识) 循环中重新临时处理bad/pp004_re_adhoc.py(已归档)good/pp004_re_compiled.py是—墓碑;G4 ~1.35× / 热启动可能会逆转

swiftperf (sp-force-unwrap-in-loop–sp-map-joined-chain) — 语料库就绪

ID坏的装置好的证据默认备注
sp-force-unwrap-in-loopforce_loop是已阻止关闭G4 阻止 — Linux 上没有 swiftc
sp-string-plus-in-loopstring_plus是已阻止关闭G4 已阻止 — 无 Swift 工具链
sp-print-hot打印循环是阻止关闭G4 阻止 — 无 Swift 工具链
sp-array-no-reserveappend_no_reserve是阻塞提示G4 阻塞 — 无 Swift 工具链
sp-map-joined-chainmap_joined是阻塞提示G4 阻塞 — 无 Swift 工具链
sp-dateformatter-hotsp-dateformatter-hot_formatter_loop.swift是jsonl提示微基准测试 ~29.8× 在一个形状上;保持提示;未进行语料库筛选
sp-json-decode-hotsp-json-decode-hot_decode_loop.swift是jsonl提示微基准 ~1958.0× 在一个形状上;保持提示;未经过语料库分类
sp-regex-hotsp-regex-hot_regex_loop.swift是jsonl提示微基准测试 ~16.4× 单一形状;保持提示;未经过语料库分类

r4 n=32 TP 65.6% FP+DOC+SKIP 0% → 语料库准备好:是(文本检查回退;当 Swift 存在时使用 SPM)。G4 2026-10-22:阻止(没有假 JSONL)。2026-10-23 的三个提示不在该裁定范围内。

arktsperf(在 at-alloc-hot–在 at-json-hot)—— 语料库准备就绪

编号不良装置良好证据默认注意事项
at-alloc-hotnew_loop是是(节点代理)关闭G4 ~33× 新建与重用;保持关闭
at-object-delete删除是是(不确定)关闭G4 ~1.0×(填充主导);孤立删除适中;保持关闭
at-console-hotconsole_loop是是(节点代理)关闭G4 ~208×;保持关闭
at-includes-hotincludes_loop是 (+ at-includes-hot_string_lut)是 (节点代理)提示G4 29× includes→Set; String.indexOf→LUT (Map1×); 保持提示
at-json-hotjson_loop是是(节点代理)提示G4 ~2.2× 解析 / ~1.7× 字符串化;保持提示

r3 n=56 TP 66.1% FP+DOC+SKIP 0% → 语料准备就绪:是。G4 是 Node/V8 代理,不是 ArkTS VM — 不会升级为错误。

cppperf(cx-string-append-unreserved)— 语料库就绪

活动规则:cx-string-append-unreserved(默认 提示)。Vector-push / iostream / .at() 规则 已移除(墓碑)。专用 C++17(≠ cperf)。

规则错误夹具良好 / 负面证据 md+jsonl默认严重性备注
(已移除 — 无标识) 向量在未保留空间的情况下推入bad/cx001_push_loop.cpp(已存档)是是—墓碑;G4 ~1.58× @-O2
cx-string-append-unreservedbad/cx-string-append-unreserved_string_plus.cpp是的 (cx-string-append-unreserved_append_reserve.cpp)是的提示G4 ~1.09× 字符 @-O2; 块 ~1.8×; 保持提示
cx-regex-ctor-hotbad/cx-regex-ctor-hot_regex_loop.cppgood/cx-regex-ctor-hot_regex_once.cppjsonl提示微基准 ~1.55×,小;保持提示
cx-endl-hotbad/cx-endl-hot_endl_loop.cppgood/cx-endl-hot_newline.cppjsonl提示微基准 ~1×,无明显成本;保持提示
(已移除 — 无标识) 循环中的 iostreambad/cx003_iostream_loop.cpp(已存档)是是—墓碑;G4 ~1.01×
(已移除 — 无标识) .at() 在循环中bad/cx004_at_loop.cpp(已存档)是是—墓碑;G4 ~0.85× 反向 @-O2

csharpperf (cs-list-add-no-capacity–cs-regex-hot) — 语料库就绪

cs-list-add-no-capacity–cs-console-hot 默认 关闭,G3 后。cs-regex-hot 默认 提示。G4 在 .NET 8.0.426(2026-10-22);无严重性升级。

规则不良设备良好 / 消极证据 md+jsonl默认严重性备注
cs-list-add-no-capacitybad/cs-list-add-no-capacity_add_loop.cs是 (cs-list-add-no-capacity_capacity.cs)是关闭G4 ~13× 列表容量;保持关闭
cs-string-plus-hotbad/cs-string-plus-hot_string_plus.cs是 (cs-string-plus-hot_builder.cs)是关G4 ~3758× string+=;保持关闭
cs-console-hotbad/cs-console-hot_console_loop.cs是 (cs-console-hot_console_outside.cs)是关闭G4 ~6× 控制台为空;保持关闭
cs-regex-hotbad/cs-regex-hot_regex_loop.cs是 (cs-regex-hot_compiled_regex.cs)是提示G4 ~2.6× IsMatch 对比 Compiled;保持提示
cs-linq-materialize-hotbad/cs-linq-materialize-hot_tolist_loop.csgood/cs-linq-materialize-hot_tolist_once.csjsonl提示.NET 10 ~38.9× 在一个形状上;保持提示;非语料库三角化
cs-format-hotbad/cs-format-hot_format_loop.csgood/cs-format-hot_format_once.csjsonl提示.NET 10 ~5.0× 在一个形状上;保持提示;非语料库分类

phpperf (ph-string-dot-hot–ph-echo-hot) — 语料库就绪

ph-array-merge-rebind 默认 错误,在 G4 之后(ph-array-merge-rebind.md+jsonl)。ph-string-dot-hot 默认 关闭(G3 OK-惯用语重)和 ph-echo-hot 提示;两者都有测量的 JSONL。

规则不良设备良好 / 消极证据 md+jsonl严重性 默认备注
ph-string-dot-hotbad/ph-string-dot-hot_str_dot.php是(ph-string-dot-hot_implode.php)是关闭G4 ~3.3× .= 与 implode 对比;保持关闭
ph-array-merge-rebindbad/ph-array-merge-rebind_array_merge.php是 (ph-array-merge-rebind_push.php)是错误array_merge 重新绑定;G4 2026-10-22
ph-echo-hotbad/ph-echo-hot_echo_loop.php是 (ph-echo-hot_echo_outside.php)是提示G4 ~4.4× 每次回显;保持提示

rubyperf (rb-string-plus-hot–rb-file-read-hot) — 语料库准备就绪

rb-string-plus-hot–rb-puts-hot 在 G3 之后默认 关闭。rb-hash-merge-in-loop 已于 2026-10-23 删除:字面量构建比 merge 更慢,并且分配更多。

规则错误夹具良好 / 负面证据 md+jsonl默认严重性备注
rb-string-plus-hotbad/rb-string-plus-hot_str_plus.rb是是关G4 ~32× += 与 <<; 保持关闭
rb-array-plus-rebindbad/rb-array-plus-rebind_array_plus.rb是是关闭G4 ~181× array+ 重新绑定;保持关闭
rb-puts-hotbad/rb-puts-hot_puts_loop.rb是是关G4 ~5.1× 每次 puts;保持关闭
rb-hash-merge-in-loop (已移除)已归档已归档墓碑—Ruby 4.0.8 直接量比 merge 慢 (~0.78×) 且对象数量约为 2×
rb-regexp-new-hotbad/rb-regexp-new-hot_regexp_loop.rbgood/rb-regexp-new-hot_regexp_once.rbjsonl提示微基准测试在一个形状上大约快 7.7 倍;保留提示;未经过语料库筛选
rb-json-hotbad/rb-json-hot_json_loop.rbgood/rb-json-hot_json_once.rbjsonl提示微基准约10.5×在一个形状上;保持提示;未经过语料库筛选

rustperf (rs-alloc-hot–rs-collect-vec-hot) — 语料库准备就绪 (r4)

rs-vec-no-capacity/rs-collect-vec-hot 重新设计 2026-10-22。r4 clap 残差 6×TP / FP+DOC+SKIP 0% → 语料库就绪:是。rs-format-rebind-hot format! 重新绑定 → 错误 (~99×);rs-string-plus-in-loop/rs-vec-no-capacity/rs-collect-vec-hot → 提示;rs-alloc-hot → 关闭(G4 测量,保持关闭);rs-println-hot → 提示(已测量)。

规则错误设置良好 / 负面证据 md+jsonl默认严重性备注
rs-alloc-hotbad/rs-alloc-hot_clone_loop.rs是 (rs-alloc-hot_with_capacity.rs)是关闭分配/克隆;G4 ~2.7× Vec / ~1.1× 克隆 — 保持关闭
rs-string-plus-in-loopbad/rs-string-plus-in-loop_string_plus.rs是 (rs-string-plus-in-loop_write.rs, rs-string-plus-in-loop_tiny_sep.rs)是提示仅 += / push_str;约 1× 均摊
rs-println-hotbad/rs-println-hot_println_loop.rs是 (rs-println-hot_println_outside.rs)是提示G4 ~12.6× 每次写入与缓冲区; 保持提示
rs-format-rebind-hotbad/rs-format-rebind-hot_format_rebind.rs是 (rs-format-rebind-hot_write.rs, rs-format-rebind-hot_let_format.rs, rs-format-rebind-hot_brace_wrap.rs)是(别名 G4)错误format! 重绑定重用;约 99× 对比 write!
rs-vec-no-capacitybad/rs-vec-no-capacity_vec_new_push.rs是的(rs-vec-no-capacity_with_capacity.rs, rs-vec-no-capacity_cfg_test.rs)是的提示G4 ~1.0× 大 / ~2.1× 小 构建器;保持提示
rs-collect-vec-hotbad/rs-collect-vec-hot_collect_in_loop.rs是(rs-collect-vec-hot_count_no_collect.rs)是提示G4 ~1.8× collect 对比 count;保持提示
rs-regex-new-hotbad/rs-regex-new-hot_regex_loop.rsgood/rs-regex-new-hot_regex_once.rs仅限 md提示待处理措施;未进行语料库分类

kotlinperf (kt-list-add-hot–kt-println-hot) — 语料库就绪

kt-list-add-hot–kt-println-hot 默认 关闭(G3 OK-习语)。空集合添加规则 已移除(墓碑)。G4 运行在 kotlinc 2.0.21 / JRE 21(2026-10-22);kit-local kt-* ≠ jvmperf JMH。无升级。

规则不良设备良好 / 消极证据 md+jsonl默认严重性备注
kt-list-add-hotbad/kt-list-add-hot_list_loop.kt是 (kt-list-add-hot_capacity.kt)是关闭G4 ~2.1× 空 vs 容量 @2e6;保持关闭
kt-string-plus-hotbad/kt-string-plus-hot_string_plus.kt是的 (kt-string-plus-hot_buildString.kt)是的关闭G4 ~1170× += 与 buildString;保持关闭
kt-println-hotbad/kt-println-hot_println_loop.kt是的 (kt-println-hot_println_outside.kt)是关闭G4 约 99 次 println;保持关闭
(已移除 — 无标识) 空列表 + 添加bad/kt004_empty_add.kt(已存档)是是(不确定)—墓碑;G4 ~0.84–1.26×

objcperf (oc-nsstring-append-hot–oc-nslog-hot) — 语料库准备就绪

激活:oc-nsstring-append-hot / oc-nslog-hot(默认 关闭)。日期格式化器、JSON 和正则表达式规则是 提示,不属于 2026-10-22 语料库裁定的一部分。数组添加规则 已移除(墓碑)。G4 在 GNUstep(非 Apple 运行时) 2026-10-22。与 swiftperf 区别。不升级。

规则错误设置良好 / 负面证据 md+jsonl默认严重性备注
(已移除 — 无标识) NSMutableArray 添加bad/oc001_add_loop.m(存档)是是(gnustep-proxy)—墓碑;G4 ~1.18× / dive ~1×
oc-nsstring-append-hotbad/oc-nsstring-append-hot_append_loop.m是 (oc-nsstring-append-hot_mutable.m)是 (gnustep)关闭G4 ~569× 拼接;保持关闭
oc-nslog-hotbad/oc-nslog-hot_nslog_loop.m是 (oc-nslog-hot_nslog_outside.m)是 (fprintf 代理)关闭G4 ~191×;保持关闭
oc-dateformatter-hotbad/oc-dateformatter-hot_alloc_loop.m是jsonl提示微基准 ~30.4× 在一个形状上;保持提示;未经过语料库整理
oc-json-hotbad/oc-json-hot_json_loop.m是jsonl提示微基准测试 ~15.8× 单一形状;保持提示;未经过语料库筛选
oc-regex-hotbad/oc-regex-hot_regex_loop.m是jsonl提示微基准 ~14.9× 在一个形状上;保持提示;未经过语料库筛选
(已移除 — 无标识) 空数组 + 添加bad/oc004_empty_add.m(已存档)是是(gnustep-proxy)—墓碑;G4 ~1.18× / dive ~1×

dartperf(dt-list-add-empty–dt-growable-add-empty)—— 语料库准备就绪

dt-list-add-empty–dt-print-hot 默认 关闭。dt-growable-add-empty 默认 提示。Dart 3.13.6 上的 G4(2026-10-22)。无升级。

规则不良设备良好 / 消极证据 md+jsonl默认严重性备注
dt-list-add-emptybad/dt-list-add-empty_add_loop.dart是的 (dt-list-add-empty_filled.dart)是关闭G4 ~3.1× 填充与空添加;保持关闭
dt-string-plus-hotbad/dt-string-plus-hot_string_plus.dart是 (dt-string-plus-hot_buffer.dart)是关闭G4 ~247× 字符串+;保持关闭
dt-print-hotbad/dt-print-hot_print_loop.dart是的 (dt-print-hot_print_outside.dart)是的关闭G4 ~128× 写入;保持关闭
dt-growable-add-emptybad/dt-growable-add-empty_empty_add.dart是 (dt-growable-add-empty_filled.dart)是提示G4 ~2.4×; 保持提示

luaperf(lu-table-insert-hot–lu-print-hot)—— 语料库准备就绪

lu-table-insert-hot 默认 关闭(G3 OK-习语)。lu-string-concat-hot 默认 错误,在 G4 之后(lu-string-concat-hot.md + jsonl)。lu-print-hot G4 有证据;默认保持 提示(依赖 I/O 环境)。

规则错误夹具良好 / 负面证据 md+jsonl默认严重性备注
lu-table-insert-hotbad/lu-table-insert-hot_insert_loop.lua是(lu-table-insert-hot_index.lua)是关闭G4 ~4.7× 插入 vs 索引;保持关闭
lu-string-concat-hotbad/lu-string-concat-hot_concat_loop.lua是 (lu-string-concat-hot_concat.lua)是错误string ..; G4 2026-10-22
lu-print-hotbad/lu-print-hot_print_loop.lua是 (lu-print-hot_print_outside.lua)是提示循环中打印;G4 2026-10-22 保持提示

beamperf(be-list-concat-reduce–be-enum-map-filter-chain)— 语料库准备就绪

编号不良装置良好证据默认注意事项
be-list-concat-reducebad/be-list-concat-reduce_list_plus.exs (+ .erl)是是提示G4 ~453× ++ 与 cons;保持提示
(已移除 — 无标识) <> 字符串追加bad/be002_string_append.exs(已存档)是是(混合)—墓碑;chunk<>获胜;tiny/digits可能反转
be-io-puts-hotbad/be-io-puts-hot_io_loop.exs是是关G4 ~3810× IO.puts;保持关闭
be-map-merge-hotbad/be-map-merge-hot_merge_in_loop.exs是是提示G4 ~6.9× Map.merge 对比 put;KW ~2×;保持提示
be-enum-map-filter-chainbad/be-enum-map-filter-chain_enum_chain.exs是是提示G4 ~4.5× map

r3 n=4 TP 75% FP+DOC+SKIP 0% → 语料库准备好:是。G4 be-list-concat-reduce–be-enum-map-filter-chain 在 OTP 27 / Elixir 1.18(2026-10-22)上;无需升级。

nimperf (nm-seq-add-hot–nm-seq-no-capacity) — 语料库就绪

规则坏设备好设备证据默认备注
nm-seq-add-hotbad/nm-seq-add-hot_add_loop.nim是待定关闭G3 OK-惯用法;G4 阻塞 — Debian apt 中没有 nim
nm-string-amp-in-loop (已移除)已存档已存档墓碑—Nim 2.2.12 join 比 &= 慢 (~0.79×,之前 ~0.69×)
nm-echo-hotbad/nm-echo-hot_echo_loop.nim是待定关闭G4 阻止(没有 nim 工具链)
nm-seq-no-capacitybad/nm-seq-no-capacity_empty_add.nimgood/nm-seq-no-capacity_ofcap.nim待处理提示G4 阻塞(没有 Nim 工具链)

批次备注

批次 B G4 (2026-10-22): arkts Node-proxy JSONL;测量了 beam/csharp/dart/kotlin;objc GNUstep(非 Apple);swift 被阻止(无 swiftc)。默认设置未更改——本轮不升级为 error。

诚实指出的差距

磁盘审计 2026-10-21 ~19:31 亚洲/上海 — 每个跳过 / 待定 / 不适用 / 不确定的规则现在都有一个命名为 evidence/<ID>.md 的存根(没有编造的 JSONL)。

  1. cperf:差 + 好 + 证据/cp-*.{ md,jsonl} 适用于已发运的规则——完成.
  2. jsperf:差 + 好 + 证据/jp-*.{md,jsonl}}` 运规则——完成.
  3. zperf:所有现行规则的配对固定装置。 测量过的JSONL + 登记根(待付/N/A/未结)——见packages/zperf/docs/evidence-policy.md'和packages/zperf/evidence/'。
  4. jvmperf固定装置:运出jp-*bad+good(朗镜)'。 vt-不安全线上本地池 指南仅载于固定/指南/' + [vt-不安全线上本地池.md'] (./packages/jvmperf/证据/vt-不安全线上本地池.md)——未发运。
  5. jvmperf证据:为运出的带有数字的规则测量误差/差错;为ART/device和情况规则花根。 见`packages/jvmperf/docs/evidence-policy.md'。
  6. ** 尚待执行的措施**(诚实——需要利用/env):zperf密度/安全根;jvm Android ART设备规则。
  7. ** Naming**:c/js好固定装置是描述性的——测试表明套间清洁性,而不是一个文件-每个规则。
  8. ** 不** 将实体堆放或剥离/汇编线计数视为含义的回归。

跨语言检查(2026-10-23)

在其他可运行的工具链上,对已经在 C 或 C++ 中有成本的文件打开和时钟采样形状进行了计时。仅当比率很大且标准库有可重用的句柄或可以放在循环外的样本时,才添加提示。变化的路径无法提升。需要新的时间戳的循环没有可以提升的内容。默认情况下保持提示。

已检查且未添加:

形状比例为什么没有圆珠
Python time.perf_counter_ns2.866循环旁的小
Ruby Process.clock_gettime2.332循环旁的小项
Python getattr1.442无明显成本
Ruby send1.938没有明显成本
JavaScript Reflect.get8.168几个纳秒;不是 Go 的 FieldByName 形式

名称查找确实达到了标准,提示:C# GetField 加上 GetValue 在 .NET 10 上大约比直接访问字段慢 53 倍(cs-field-by-name-hot;缓存的 FieldInfo.GetValue 仍约慢 42 倍),Objective-C valueForKey: 大约慢 124 倍(oc-value-for-key-hot),Swift value(forKey:) 大约慢 35 倍(sp-value-for-key-hot)。

Zig 0.17 的 Io.Dir.openFileAbsolute 大约是 2134×,Io.Clock.awake.now 大约是 42×;两者都是带 JSONL 的提示。Zig 对一个不变对象的 json.parseFromSlice 大约是 2683×,而解析一次(zp-json-hot 提示)则比较。第一次 Swift Date() 运行和第一次 Objective-C NSDate 运行被丢弃,因为编译器移除了循环后的结果。重新运行并保留结果大约是 244× 和 769×,这两个提示现在都有 JSONL。

没有标准库对象,因此没有 slug 和没有数字:C、C++ 和 Rust 的标准库中没有 JSON 解析器。Zig 0.17 的标准库中没有正则表达式编译器。

未在此主机上测量,因此没有数值,也没有新的标识:JVM 和 Kotlin(无 JDK / kotlinc)、PHP、Dart、Lua、Nim、Elixir、ArkTS(不要复制 Node 数字)。