Epoch-Based Reclamation:两个纪元的由来、Crossbeam 的实现与停顿的代价
从 Fraser(2004)的三个 limbo list 出发,推导 EBR 为什么要等两个纪元、垃圾该打哪个纪元的标签;对照 crossbeam-epoch 0.9.18 源码,实测两个变异体、pin 的指令选择、每节点开销、回收速率上限,以及一个被抢占或睡住的读者让垃圾涨到多少。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 15 篇文章 · 返回首页
从 Fraser(2004)的三个 limbo list 出发,推导 EBR 为什么要等两个纪元、垃圾该打哪个纪元的标签;对照 crossbeam-epoch 0.9.18 源码,实测两个变异体、pin 的指令选择、每节点开销、回收速率上限,以及一个被抢占或睡住的读者让垃圾涨到多少。
对照 orlp/pdqsort 源码与 Peters 论文,拆解 pdqsort 在 introsort 上的四处改动;用与参考实现比较次数逐次一致的 C 移植和 McIlroy 对抗输入实测,并梳理 Boost、Rust、Go、libc++ 各自采用了哪些部分。
Rust for Linux 真的在解决问题还是在搬问题?合入时间线、抽象 crate、Pin/unsafe 边界、Asahi GPU 驱动、维护成本、ABI 兼容、工具链依赖。
拆穿高星「无锁」库:隐藏 mutex、被滥用的 memory_order_relaxed,以及 CAS 重试循环的阻塞本质;附 x86 vs ARM 差异。
深入剖析中央限价订单簿(CLOB)撮合引擎的数据结构与算法,覆盖价格时间优先、Pro-Rata、订单类型、自成交预防、集合竞价、确定性回放、WAL 快照、单线程事件循环与 Disruptor 模型,并给出 Rust/Go 简化实现与单元测试清单。
汇总本站 Rust 系统编程相关文章,覆盖所有权、async runtime、FFI、unsafe 与从 C 重写到 Rust 的工程经验。
组装完整 LSM-Tree 存储引擎:DB 接口(Open/Put/Get/Delete/Iterator/Snapshot)、单写多读并发控制、启动恢复,然后用 Rust 重写核心模块,记录 5 个编译器不让我过的故事,最后三方 benchmark 对比。从零写一个 LSM-Tree 存储引擎系列第 5 篇。
多维度对比主流编程语言的内存管理策略,分析吞吐量、延迟与开发效率的权衡。
C++ 的 RAII 有五个逃生舱门:use-after-move、悬垂引用、共享可变、异常安全、裸指针逃逸。Rust 的所有权模型把它们全部焊死了。从 C++ 侧拆解 RAII 的根本缺陷,看 Rust 如何在每个分叉点做出不同选择。
拿仓库里现成的 io_uring echo server 做基线,一行一行往 Rust 翻。记录编译器拦下来的五个瞬间——每一个都对应 C 版本里一个真实的 crash 或泄漏风险。Rust 的价值不在更快,在更难把雷带到线上。
Rust 的所有权系统在 FFI 边界会失效——一旦指针跨过 extern \"C\",borrow checker 就看不到了。本文从 bindgen 自动生成绑定、cbindgen 导出 Rust 接口、内存所有权跨语言传递,到为 C 库编写安全的 Rust wrapper,系统拆解 FFI 实战中的每一个坑。
从 Future::poll 到 work-stealing 调度器,从 Waker vtable 到 mio/epoll I/O 驱动,再到层级时间轮——一层一层拆开 tokio 约 40000 行代码的运行时内核,看看你每写一个 .await 背后到底发生了什么。
safe Rust 的编译器保证有边界。当你做 FFI、裸指针、手动内存布局时,这些保证全部消失。这篇讲怎么在 unsafe 里活着回来。
不是'谁快'——而是'什么维度上谁更合适'。在延迟、吞吐量、内存占用、编译速度、并发模型五个维度上正面对比,用同一个任务的三种实现说话。
五篇长文,从 LSM-Tree 的设计哲学讲到完整 KV 引擎实现,最后用 Rust 重写并三方 benchmark 对比。每篇含完整 C 代码、架构图、数学推导。