本期检索说明

先读取 content/collections/deep-radar 的历史原文链接并复查标题语义,排除了上一期已经推荐的 G1 FromCardCache、Zen spill 与 Rust trait solver。检索先覆盖 2026-08-25 至 26 日,不足 2 篇后回溯至最近七日。最终仅保留 2 篇 OpenJDK 原作者 RFR:它们都给出可量化实验、直接源码/指令证据与可迁移的工程结论。

本周期没有收录 Kotlin、Rust、Zig、Linux:近七日候选中,部分只有源码改动或未经说明的单个百分比,部分属于 release note;没有同时满足“实测 + 源码/汇编 + 原理”三项红线。两篇 RFR 截稿时都尚未合入,以下只分析其证据和设计,不把提案写成已发布功能。

主题 原始发布日期 一手来源 状态 推荐强度
C2 宏展开的临时图内存 2026-08-19(北京时间) OpenJDK RFR / JBS 评审完成、未合入 必读
RISC-V VectorMask 专用指令 2026-08-21 OpenJDK RFR / JBS 评审完成、未合入 推荐

01 · C2 为什么会为一次宏展开留下约 200 MB arena 内存

原文与日期: Vladimir Kozlov,GitHub 时间 2026-08-18 16:16 UTC、北京时间 2026-08-19;OpenJDK RFR 8390550,对应 JBS 8390550

为什么值得读: 这是编译器“活节点已经删除,内存却没有回来”的典型故障。问题不在最终 IR 图有多大,而在 C2 arena 会保留阶段中创建过的临时节点;因此只盯 live_nodes() 很容易低估编译内存。

核心技术结论: SubTypeCheck 宏节点展开会改变 control 与 memory,并产生大量临时 MergeMem。JDK-8239072 为防止节点预算耗尽,在每个宏节点展开后都执行全图 IGVN;重复优化又放大临时节点创建。修复不是取消清理,而是批量展开:默认累计 16 个宏节点,或接近 live-node 上限时再跑一次 IGVN,同时在进入 Allocate 第二阶段前做边界清理。

最有价值的实验、源码与 benchmark 细节: 失败样本 $Proxy132::<clinit> 有 5,967 字节码;C2 为它创建约 100 万个临时 MergeMem,仅这些节点就在 arena 中占约 200 MB。补丁引入 MacroExpansionCleanupCount=16,以每个宏节点最坏约 200 个节点、再留 50% 优化余量,得到 macro_expansion_estimate=300 和动态清理阈值。回归测试生成 140 行、每行 9 个接口参数的巨大方法,并用 -Xcomp -XX:VerifyIterativeGVN=1110 强制覆盖失败路径;另测参数边界 1 与 100。

C++
pending_expansions_to_cleanup++;
if (pending_expansions_to_cleanup < MacroExpansionCleanupCount &&
    C->live_nodes() < macro_expansion_limit) {
    continue;
}
cleanup_graph(_igvn);

适合的工程师背景: 熟悉 C2、IGVN、编译线程内存,或正在排查 -Xcomp、超大生成类、代理类编译失败的 JVM 团队工程师。

预计阅读收益: 约 20–30 分钟;能建立“最终图规模、临时节点总量、arena 生命周期”三者不同的诊断模型,并学会把昂贵全局 pass 改为有内存护栏的批处理。

02 · RISC-V VectorMask:从布尔恒等式直接落到 RVV 单指令

原文与日期: Dingli Zhang,2026-08-21;OpenJDK RFR 8390826,对应 JBS 8390826

为什么值得读: 它把 Vector API、C2 AD 匹配规则、RVV 指令选择和 JMH 数据完整连起来。工程价值不只在 RISC-V:任何后端都可用相同方法检查“高层布尔组合是否已经有目标 ISA 的专用指令”。

核心技术结论: 原先 notand(...).not()or(...).not()xor(...).not()eq()or(other.not()) 会落成多条 mask 指令。新增 C2 match rules 后分别发射 vmnot.mvmnand.mmvmnor.mmvmxnor.mmvmorn.mm,覆盖 byte/short/int/long;IR 测试同时断言正确结果与目标 Mach 节点恰好出现一次。

最有价值的实验、源码、benchmark 与指令细节: 作者在 SG2044 上以 JMH throughput、10 次采样测试 256/512/1024 元素。例如 byte mask equality 在 1024 元素时从 2485.999 ± 23.447 提升到 3783.676 ± 37.133 ops/ms,约 +52%;byte NAND 256 元素从 9239.545 ± 76.13413712.414 ± 87.500 ops/ms,约 +48%。int/long 的 NAND、NOR、OR-NOT、XNOR 多数约提升 18%–20%。单目 NOT 在 int/long 上基本持平,说明“少一条指令”不自动等于吞吐提升,仍需按元素宽度和循环瓶颈实测。

TEXT
XorVMask(AndVMask(src1, src2), MaskAll(-1))  -> vmnand.mm
XorVMask(XorVMask(src1, src2), MaskAll(-1)) -> vmxnor.mm
OrVMask(src1, XorVMask(src2, MaskAll(-1)))  -> vmorn.mm

适合的工程师背景: 使用 Java Vector API、维护 C2 后端,或熟悉 RISC-V V 扩展与 JMH 的性能工程师。

预计阅读收益: 约 20–35 分钟;能学会从高层 IR 模式到目标指令、IR 断言、吞吐数据三层闭环验证 peephole/match-rule 优化。

中国大陆 ToC 硬件价格观察

数据口径

窗口为 2026-07 下旬至 2026-08-26,单位人民币。国内公开聚合页没有稳定开放完整逐日原始序列,因此图只连接可复核的报价快照,不插值缺失日期。8 月 26 日可确认 9800X3D 京东价约 ¥3,175;其余五类没有取得新的同 SKU、同口径公开价,故沿用 8 月 25 日最后可核验快照,并明确标成“最近快照”,不冒充当日成交价。

中国大陆六类 PC 硬件近 30 天价格快照

类别 代表样本与最新可核验价 窗口内变化 建议
CPU Ryzen 7 9800X3D,8/26 约 ¥3,175 8/10 促销 ¥2,283;8/21 ¥2,597,随后明显回弹 观望;9850X3D 约 ¥3,295,价差仅约 ¥120,9800X3D 当前性价比不足
GPU 万丽 RTX 5070 OC 12GB,最近快照约 ¥6,899 窗口边界低价 ¥5,249,显存涨价后溢价扩大 观望;除非生产力刚需,不追高 OC 型号
主板 B850M 同档样本,最近快照约 ¥1,298 7/21 TUF 样本 ¥1,332,波动较小 可按需入手;优先看供电、M.2 与网卡,不必赌短期大跌
DRAM Kingston Fury DDR5-6000 32GB,最近快照约 ¥3,900 8/7 低价 ¥3,870,仍在异常高位 刚需小量入手;AI/HBM 分流产能,短期缺少下跌依据
HDD IronWolf Pro 8TB,最近快照约 ¥1,540.7 近期公开快照持平 NAS 容量告警时分批买;近线 HDD 供应偏紧,不建议等大幅降价
SSD ZHITAI Ti600 2TB,最近快照约 ¥749 7/26 与最近快照均 ¥749 刚需可买但不囤货;NAND 合约价仍有上行压力

价格来源: 8 月 24 日国内 9800X3D/9850X3D 京东价对比9800X3D 慢慢买历史摘要万丽 RTX 5070 商品百科华硕 B850M 商品百科Kingston Fury 32GB 商品百科IronWolf Pro 8TB 商品百科ZHITAI Ti600 2TB 商品百科。券后价会随账号、地区、包装与库存变化。

判断依据

存储侧没有把横盘快照解释成供应改善。新华社 8 月 3 日报道援引机构预测,2026 年第三季度 DRAM 合约价环比涨幅预期被上调至 32%,消费级供给仍受 AI/HBM 产能重配影响;8 月 25 日行业报道显示 HBM 占 DRAM 晶圆产能比例已由 2022 年不足 5% 升至 2025 年末约 20%。HDD 同样存在供给压力,公开行业数据称近线盘产能已被长期订单锁定。由此,DRAM、SSD、HDD 的建议都是“刚需分批”,而非等待确定性大跌。

CPU 的判断来自同日同平台价差:9800X3D 约 ¥3,175,而更新的 9850X3D 约 ¥3,295,前者只有在更深折扣时才合理。GPU 仍受显存成本和渠道调价影响;主板的近月波动相对小,适合按功能需求采购。

其它你可能关心的

本期结论

两篇正文共享一个方法:性能优化要同时证明“为何慢、改了什么、机器码或 IR 变成什么、数据是否真的变好”。C2 案例提醒我们统计临时对象总量而非只看最终图;RVV 案例则提醒我们,指令数减少也必须分类型、分规模测量。硬件部分继续坚持稀疏快照边界:没有公开日价就不伪造连续曲线。