本期检索说明

先读取 content/collections/deep-radar 截至 2026-09-23 的全部原文链接,并按 URL、标题、实现机制与补丁身份去重。最近 24 小时找到 2 项同时具备公开实测、源码级差异、原理解释与工程迁移价值的材料:一项来自 HotSpot Linux/RISC-V 特性探测,一项来自 rustc Polonius 局部约束图。Kotlin、Zig 与 Linux 的新候选没有同时满足三项证据红线,因此不为领域配额凑数。

两项都要带着边界读。Zicond 数据来自单台 SG2044,并且完全可预测分支没有稳定收益;该 PR 仍在开放评审且贡献者 OCA 尚待处理。Polonius 的 instruction count 覆盖面较广,但 max RSS、cycles 与 bootstrap 在不同测量中出现方向相反或显著回退,不能把 0.4% 指令改善直接等价成 0.4% wall-clock 加速。

主题 原始发布日期 一手来源与交叉验证 截稿状态 推荐强度
Linux/RISC-V 产品构建默认启用 Zicond 2026-09-23 14:28(中原标准时间) OpenJDK PR #33026 / JDK-8392812 / hwprobe patch / assembler 实现 / 2,000 万组差分校验 开放评审,OCA 待处理 推荐,重点看硬件探测与分支可预测性边界
Polonius 局部约束图改用内联 SmallVec 2026-09-23 10:01(中原标准时间) rust-lang/rust PR #163190 / 完整 patch / 两轮 rustc-perf / 合入后 CI 已合入 main 推荐,重点看小集合表示与负向指标

01 · JVM:让产品构建真正使用 RISC-V Zicond

原文与日期: 6eanut,2026-09-23 14:28(中原标准时间);OpenJDK PR #33026、JDK-8392812、完整源码 patch 与既有 RISC-V assembler 实现。

为什么值得读: 这不是新增指令匹配规则,而是修复“实现已经存在、CPU 也被探测到,但 release JVM 永远不开启”的能力接线问题。RISCV_HWPROBE_EXT_ZICOND 的检测与 ext_Zicond.enable_feature() 原本位于 #ifndef PRODUCT 内,导致通用 Linux hwprobe 路径只在 debug 构建启用;厂商专用路径不受影响。这类条件编译边界错误很容易让基准、开发构建与生产行为产生错觉。

核心技术结论: 补丁把 Zicond 探测移出非产品构建保护,同时保留 -XX:-UseZicond 作为逃生阀。Zicond 的 czero.eqz/czero.nez 按条件把源寄存器或零写入目标寄存器,HotSpot 的 macro assembler 可用两次 czero 加一次 add 合成无分支条件选择。其价值取决于分支可预测性:随机条件避免错误预测代价时收益大;条件稳定时,普通分支可能更便宜,因此默认开启仍需保留可关闭能力。

C++
// 从 #ifndef PRODUCT 中移出,release JVM 也会根据 hwprobe 启用
if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZICOND)) {
  VM_Version::ext_Zicond.enable_feature();
}

// 既有汇编语义:条件为零时保留 value,否则写零
void czero_eqz(Register rd, Register value, Register condition);

最有价值的实验、源码与 benchmark 细节: 在 SG2044(T-Head C920)同一 release JDK 上,不可预测随机 select 从禁用 Zicond 的 1.93 ns/op 降至 0.81 ns/op,实算约 2.38 倍;80% 不可预测、20% 可预测的混合负载从 2.58 降至 1.68 ns/op,约 1.54 倍。完全可预测负载没有一致改善,多次运行差异约在 10% 内。正确性侧对边界值与 2,000 万组伪随机输入做了启用/禁用差分,结果完全一致。

patch 本身只有 1 个文件、6 行增加与 6 行删除,机制证据非常集中;但 PR 没有公开 JMH 源码、运行次数、误差区间、频率/功耗状态或生成汇编,所以不能把微基准倍率外推到 Java 服务。工程复测应同时抓取 -XX:+PrintAssembly、branch-miss、cycles、功耗和吞吐,并按分支熵分桶;若真实条件高度可预测,应保留 A/B 测试 -XX:-UseZicond。

适合的工程师背景: 熟悉 HotSpot CPU feature 探测、C2 条件移动、RISC-V 汇编,或负责把开发板优化安全带入产品构建的 JVM/平台工程师。

预计阅读收益: 约 35–55 分钟;能掌握从 Linux hwprobe、VM feature flag 到 czero 指令的完整启用链,并获得一套按分支可预测性验证 branchless 优化的方法。

02 · Rust:Polonius 用 SmallVec<[RegionVid; 4]> 替换小型哈希集合

原文与日期: Jack Huey,2026-09-23 10:01(中原标准时间);rust-lang/rust PR #163190、完整源码 patch 与 rustc-perf 合入后对比。

为什么值得读: 这是一篇很干净的数据结构替换案例。Polonius 的 LocalizedConstraintGraph 为每个物理节点和逻辑 region 保存后继集合;实际集合通常很小,却使用带哈希表元数据和独立分配的 FxIndexSet。补丁把 4 个 RegionVid 直接内联到 SmallVec,以线性扫描去重,利用“小 N 时缓存局部性和免分配胜过 O(1) 哈希”的工程事实。

核心技术结论: edges 从 FxHashMap<LocalizedNode, FxIndexSet<RegionVid>> 变成 FxHashMap<LocalizedNode, SmallVec<[RegionVid; 4]>>,logical_edges 同样替换。插入从哈希集合的 insert 改为 contains 后 push,仍保持唯一性;迭代顺序继续稳定。容量超过 4 时 SmallVec 才转入堆分配,所以收益来自大量零到四元素集合避免单独 allocation 与哈希初始化,而代价是每次插入做线性比较。

Rust
let succs = edges.entry(node).or_default();
if !succs.contains(&outlives_constraint.sub) {
    succs.push(outlives_constraint.sub);
}

这不是无条件更优的数据结构法则:若某类程序的 region 后继数经常远超 4,线性查重和溢出分配可能反噬。评审也明确提出,物理边与逻辑边未来可能需要分别调优内联容量。因此迁移到其他编译器图结构前,应先统计集合基数直方图,而不是照搬常数 4。

最有价值的实验、源码与 benchmark 细节: 合入后 rustc-perf 的可靠指标 instruction count 在 49 个 primary 样本上平均下降 0.4%,区间为 0.2%–1.0%,没有 primary instruction 回退;30 个 secondary 改善样本同样平均下降 0.4%,另有 2 个 secondary 回退 0.2%。bootstrap 从 494.96 s 降至 489.957 s,约 1.01%,但这类 wall-clock 容易受噪声影响。

负向数据尤其重要:合入后有 2 个 secondary cycles 样本回退 37.0%–41.6%,而预合入测量还出现过 1 个 primary max RSS 回退 2.8%、bootstrap 回退 0.69%;合入后同一 RSS 指标又变为改善 2.4%。这说明 instruction count 的广泛小幅下降可信度最高,cycles/RSS/bootstrap 的单点方向不稳定。工程复测应增加集合基数与 heap spill 计数,并把 Polonius on/off、check/incr/full 分组比较。

适合的工程师背景: 熟悉 borrow checker/Polonius、rustc MIR 数据流、图遍历与小对象分配,或正在优化编译器中大量小集合的工程师。

预计阅读收益: 约 45–65 分钟;能掌握用基数分布选择 SmallVec 的方法,同时学会把 rustc-perf 的 instruction、cycles、RSS 和 bootstrap 分开解读。

中国大陆 ToC 硬件价格观察

数据口径

窗口为 2026-08-26 至 2026-09-24,单位人民币,六类硬件固定同一 SKU。今天通过公开比价页的实时渲染结果复核到 CPU、GPU、主板、HDD、SSD 五类报价;DRAM 页面仍明确显示“暂无报价”,因此不新增点。重复价格作为真实采样保留,用来区分“已复核横盘”和“未取得数据”。SSD 继续只采用 2TB 规格全网比价栏,不采用跨容量聚合的“¥819 起”。

中国大陆六类 PC 硬件公开价格事件

类别 9 月 24 日可复核价 30 日窗口内真实走势 建议
CPU Ryzen 7 9800X3D,京东 ¥2,579 9/3 ¥2,599 → 9/9 ¥2,449 → 9/22 ¥2,619 → 9/23–24 ¥2,579 观望或接近前低时入手;连续两日横盘,仍比窗口低点高 5.31%
GPU MSI RTX 5070 VENTUS 3X 12G,亚马逊中国 ¥4,464.34 8/29–9/24 十个真实点均为 ¥4,464.34 刚需可比价后入手;该渠道横盘,但与京东 ¥8,199 的售后和渠道口径不可等同
主板 ASUS TUF B850M-PLUS WIFI7,天猫 ¥1,299 8/31 ¥1,449 → 9/2–9/24 ¥1,299 刚需可入;较窗口首点低 10.35%,多次复核横盘
DRAM 暂无报价;最后可复核 9/9 ¥3,900 9/2 ¥3,900 → 9/5 ¥3,860 → 9/6–9/9 ¥3,900 观望;固定 SKU 缺价,不用其他容量、颗粒或时序替代
HDD IronWolf Pro 8TB ST8000NE001,i百联 ¥1,849 9/1–9/24 九个真实点均为 ¥1,849 容量刚需可买;先核对型号、五年保修与数据恢复服务
SSD ZHITAI Ti600 2TB,京东 ¥1,799 9/2 ¥1,919 → 9/23–24 ¥1,799 观望;可比价下降 6.25%,但样本仅三点且同页近期爆料为 ¥1,889–1,919

价格来源: 9800X3D、MSI RTX 5070 VENTUS 3X、ASUS TUF B850M-PLUS WIFI7、Kingston FURY DDR5-6000 32GB、IronWolf Pro 8TB、ZHITAI Ti600 2TB。

判断依据

CPU、GPU、主板、HDD 与 SSD 今天都与昨日相同,新增点只说明可核验横盘,并不意味着整个市场不变。CPU 仍未回到 9 月 9 日低点;GPU 的渠道价差远大于日波动;主板与 HDD 已形成较长横盘段。DRAM 固定 SKU 无报价。SSD 的 2TB 可比价保持 ¥1,799,但近期好价爆料仍高于当前全网比价栏,渠道与库存有效性需要下单前复核,因此暂不据两个连续低价点判断进入持续下跌。

其它你可能关心的

本期结论

两项改动都在纠正“抽象成本与真实分布不匹配”:HotSpot 已有 branchless 指令支持,却被条件编译挡在生产构建之外;Polonius 的后继集合通常很小,却为哈希集合和堆分配付费。Zicond 在不可预测 select 上约提升 2.38 倍,但可预测分支没有稳定优势;SmallVec 让 49 个 primary 样本指令数平均下降 0.4%,却伴随不稳定的 cycles/RSS 信号。真正可迁移的不是具体倍率或容量 4,而是先测分支熵与集合基数,再决定默认路径和逃生阀。