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
运行时(本证据文件)
| Field | Value |
|---|---|
| 时间 | 2026-10-23 亚洲/上海 |
| before | 187.165 ns_per_op, 96.003 B/op |
| after | 0.356 ns_per_op, 0.000 B/op |
| 前/后比例 | ~526× |
Lint 映射 / 策略
政策 提示 — 只有在更新器被重新创建时才升级;常见的每实例持有一个的模式大多是一种痕迹/风格上的异味,而不是在增量路径上的实际延迟。
限制
在这台机器上进行微基准测试;请参见 scripts/run-static-vs-hotspot.sh。不要随意编造比率。语料残差 ≠ 加速比。