本期检索说明

先读取 content/collections/deep-radar 截至 2026-09-28 的全部原文链接,并按 URL、标题与实现机制去重。最近 24 小时只有 Shenandoah HdrSeq 的延迟分配补丁同时给出可复核实测、完整源码差异与机制解释;它是 9 月 17 日“缩窄直方图子桶”之后的独立后续实验,前者减少已分配桶的粒度成本,本次则让从未接收样本的直方图完全不分配 magnitude 指针数组,本文不会把两项收益叠加宣传。

回溯 7 天后,Kotlin、Rust、Zig 与 Linux 仍没有第二项同时满足三条红线的新材料:Kotlin vararg 补丁有字节码级机制但没有公开 benchmark;HotSpot SwissTable 有完整实现与定性结果但没有数值;近期 Rust 候选已经收录或缺少可归因的稳定实测。宁缺毋滥,本期只收录 1 篇。该 PR 截稿时仍为 draft、测试仍在运行,本文只评价公开 patch 与作者给出的 Native Memory Tracking 数据,不把它写成已合入能力。

主题 原始发布日期 一手来源与交叉验证 截稿状态 推荐强度
HdrSeq magnitude 数组延迟分配 2026-09-29 08:04(中原标准时间) OpenJDK PR #33110 / 完整 HotSpot patch / NMT 分配栈 / gtest Draft,尚未完成评审与全部测试 推荐,重点看空对象成本与延迟物化边界

01 · JVM:让空的 Shenandoah HdrSeq 不再预付 56 槽数组

原文与日期: pf0n,2026-09-29 08:04(中原标准时间);OpenJDK PR #33110、完整源码 patch 与 JDK-8393152。

为什么值得读: 这是一个很干净的“对象存在不等于存储必须存在”案例。ShenandoahPhaseTimings 会持有许多 HdrSeq,旧构造函数为每个实例立刻分配 MagBuckets = 56 个指针并全部清零,即使该阶段从未记录过样本。补丁把直方图的逻辑状态与物理存储拆开:空序列只保留 _hdr == nullptr,直到第一次 add() 才物化数组。这个模式可迁移到运行时统计、诊断计数器和稀疏 profiling 数据结构。

核心技术结论: 构造函数只初始化空指针和最小值;allocate_hdr() 由 add(double) 与非空 add(const HdrSeq&) 调用。析构、clear() 和合并路径都显式接受“从未分配”的状态。由于 percentile() 过去默认 _hdr 存在,补丁同时为 num() == 0 增加早退;NONCOPYABLE(HdrSeq) 则阻止延迟分配后出现浅拷贝所有权错误。

C++
HdrSeq::HdrSeq() :
  _hdr(nullptr),
  _minimum(DBL_MAX) {}

void HdrSeq::allocate_hdr() {
  if (_hdr == nullptr) {
    _hdr = NEW_C_HEAP_ARRAY(int*, MagBuckets, mtGC);
    for (int c = 0; c < MagBuckets; c++) _hdr[c] = nullptr;
  }
}

void HdrSeq::add(double val) {
  allocate_hdr();
  // 原有分桶逻辑
}

最有价值的实验、源码与 benchmark 细节: 作者给出的 Native Memory Tracking 分配栈显示,修改前 HdrSeq::HdrSeq() 路径在峰值累计 131,712 B、294 次分配;修改后只有真正接收样本的 HdrSeq::add() 路径累计 35,840 B、80 次分配。净减少 95,872 B,按公开数字计算下降 72.79%,占用约缩小为原来的 1/3.67。这不是吞吐 benchmark,而是对目标成本更直接的分配栈证据:少掉的是空直方图的预分配,不应推断为 GC pause 或应用吞吐同比改善。

补丁还新增 empty_hdr gtest,逐个检查空序列 0..100 百分位均返回 0、clear() 不触发分配、空序列合并仍保持空;同时把 _card_stats[i] 的释放从 delete 修正为 delete[]。后者是独立的数组释放正确性修复,不应计入上述 95,872 B 收益。当前实验边界同样重要:公开数据只有单组 NMT 峰值,没有多 workload、wall-clock 或 RSS 置信区间,而且 PR 仍是 draft。

适合的工程师背景: 熟悉 HotSpot C-heap/NMT、Shenandoah phase timing,或正在设计大量“通常为空、偶尔写入”的运行时统计对象的 JVM 与系统工程师。

预计阅读收益: 约 20–30 分钟;能学到如何把延迟物化完整地传播到构造、析构、查询、清理与合并路径,并用分配栈而非笼统 RSS 验证小型基础数据结构的收益。

中国大陆 ToC 硬件价格观察

数据口径

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

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

类别 9 月 29 日可复核价 30 日窗口内真实走势 建议
CPU Ryzen 7 9800X3D,京东 ¥2,619 9/3 ¥2,599 → 9/9 ¥2,449 → 9/23–24 ¥2,579 → 9/25–29 ¥2,619 观望或接近前低时入手;比窗口低点高 6.94%,连续五日横盘
GPU MSI RTX 5070 VENTUS 3X 12G,亚马逊中国 ¥4,464.34 9/7–9/29 十五次复核均为 ¥4,464.34 刚需可比价后入手;单一渠道横盘,不代表全市场没有促销
主板 ASUS TUF B850M-PLUS WIFI7,天猫 ¥1,299 8/31 ¥1,449 → 9/2–9/29 ¥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/29 十四次复核均为 ¥1,849 容量刚需可买;先核对型号、五年保修与数据恢复服务
SSD ZHITAI Ti600 2TB,京东 ¥1,799 9/2 ¥1,919 → 9/23–29 ¥1,799 观望;可比价下降 6.25%,但需以实际结算页确认活动价

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

判断依据

五个可报价 SKU 今天均与昨日持平,没有新的连续下跌信号。CPU 仍明显高于 9 月 9 日低点;GPU、主板与 HDD 已在同一公开渠道长时间横盘;SSD 的 2TB 全网比价栏保持 ¥1,799,但页面头部“¥819 起”来自跨容量聚合,不能用于本固定 SKU。DRAM 继续缺价。基于这些证据,本期不把横盘解释成全市场稳定,也不凭新品或产能传闻预测价格方向。

其它你可能关心的

本期结论

HdrSeq 补丁的价值不在于 94 KiB 本身,而在于把统计对象的“逻辑空状态”做成真正零附加存储,并为所有读取和生命周期路径补齐这一状态。公开 NMT 数据显示峰值从 131,712 B 降到 35,840 B,但它仍只有单组内存证据、没有延迟或吞吐结果;在更多 workload 与评审完成前,最稳妥的结论是“空直方图成本显著下降”,而不是 Shenandoah 整体性能提升。