XPerf
语言Java证据

jp-非静态字段更新器

主张

非静态的 Atomic*FieldUpdater 字段存在每个实例占用空间的风险,并可能被意外重新创建。每次创建一个 updater 比重用静态的慢约 526 倍。JDK 27 的稳态配对(每实例递增 248 ns,静态递增 1567 ns)在空闲主机上无法复现:Temurin 21.0.13,负载 0.96,对 256 个节点进行 4000 次遍历,每实例中位数 4.747 ms 对比静态 4.207 ms,约为 1.13 倍。该检查不能替代创建路径的 JSONL。稳态维持约 1 倍。

如何测量

  • 来源:J32_RuleEvidenceBatch.jsonl
  • JDK 27 (27+35),JVM 参数 -XX:+UseCompactObjectHeaders
  • 之前: newUpdaterEach
  • 之后: staticUpdater

运行时(本证据文件)

FieldValue
时间2026-10-23 亚洲/上海
before187.165 ns_per_op, 96.003 B/op
after0.356 ns_per_op, 0.000 B/op
前/后比例~526×

Lint 映射 / 策略

政策 提示 — 只有在更新器被重新创建时才升级;常见的每实例持有一个的模式大多是一种痕迹/风格上的异味,而不是在增量路径上的实际延迟。

限制

在这台机器上进行微基准测试;请参见 scripts/run-static-vs-hotspot.sh。不要随意编造比率。语料残差 ≠ 加速比。