XPerf
语言JavaScript证据

jp-map-filter-chain — 已测量,仍有提示

状态

提示。实时时钟 JSONL:jp-map-filter-chain.jsonl。未经过语料筛选。2026-10-22 的语料判定不涵盖此标识符。

测量

examples/bench/evidence_jp005_jp006.js。三次热身运行后九轮;中位数。双方构建结果数组并求和。Node v24.18.0,V8 13.6.233.17-node.50。

ratio 是链时间 / 一次通行时间。成本随着长度和通行次数的增加而增加。

角色情况中位数毫秒操作次数比率
之前3 行,先过滤再映射,× 200000.289600001.276
之后一次传递0.226600001
之前3 行,四个过滤器然后映射,× 200000.761600003.460
之后一次传递0.220600001
之前100 行,先过滤再映射,× 20000.5042000001.228
之后一次传递0.4102000001
之前100 行,四个筛选器然后映射,× 20001.0262000002.487
之后一次传递0.4132000001
之前35000 行,先过滤然后映射,× 208.7287000004.598
之后一次通过1.8987000001
之前35000 行,四个过滤器然后映射,× 2012.8507000009.841
之后一次通过1.3067000001

对 3 行数据进行 filter 然后 map 的速度是 1.28×,低于大约 2× 的标杆。对 3 行数据进行四次遍历是 3.46×,而 20000 次调用仍然在 0.76 毫秒内完成。在 35000 行数据上,一次遍历大约是 4.6×(一次 filter)和大约 9.8×(四次 filter)。这些是不同的成本。提示是这么说的,它并没有说每个链条都必须重写。

匹配器在查找之前会去掉 // 注释和块注释。它不知道数组的长度,也不需要循环。生成的 gen-* 文件仍然会被跳过。

解阻条件

不要仅从这个文件将默认值设置为 error。一个短数组、一条冷路径或另一个引擎都可能抹去差异。默认更改之前仍然需要语料分流。