Rust Arc重构:一个18倍性能提升的案例
核心问题
RateKeeper 速率限制服务在处理大型选择器池(25,000 个候选键)时,无法达到 5k RPS 的目标性能,只能跑到约 3.3k-3.5k RPS,p99 延迟高达 18.5-18.7 毫秒。
问题根源
代码在语义上看起来简单、安全、易理解,但热路径里埋着明显的性能陷阱:
- 每次请求都深度克隆大型不可变状态
- 即使最终只需要返回一个键,每个请求也会:
- 克隆完整的 quota 配置
- 复制多达 25,000 个键
- 重新计算整个键集的 generation 哈希
- 这些键值并不会发送给 Dragonfly,只是在应用层用来把序号映射回配置键
性能数据
- 优化前基准:实际 RPS 约 3.3k-3.5k,应用层平均延迟约 9.0 毫秒
- Criterion 基准(25k 键池):当前 resolve 操作约 2.17 毫秒,配置 quota 克隆约 0.79 毫秒,仅元数据处理约 1.30 毫秒
关键教训
在 Rust 中写出语义上“廉价”“安全”“好推理”的代码,并不代表它在大规模不可变状态下也足够便宜。真正的瓶颈可能就藏在这些反复复制和哈希的热路径里。
原文链接:https://baarse.substack.com/p/rust-arc-refactor-that-turned-18?r=qjwrd&utm_campaign=post&utm_medium=web&triedRedirect=true
RHWP 0.7.9:用 Rust/WASM 构建的韩国 HWP/HWPX 文档查看器/编辑器
项目概述
RHWP 是一个面向韩国 Hancom HWP / HWPX 文档格式的开源查看器/编辑器。这类格式被大量日常使用,但长期缺乏真正可用的开源实现,专有格式锁定问题一直很严重。
技术特点
- 纯 Rust 开发,编译目标为 WASM
- 跨平台运行:浏览器版本、VS Code 扩展,以及 Chrome / Firefox / Safari / Edge 扩展均可用
- 提供 npm 包(
@rhwp/editor、@rhwp/core)和原生 Rust crate
技术亮点
- 面向复杂专有二进制格式解析
- 包含 1,100+ 测试用例覆盖边界情况
- 作者还公开了
mydocs/中的 AI 结对编程笔记,记录设计决策、提示词和人机协作过程
项目信息
- 仓库:https://github.com/edwardkim/rhwp
- 许可证:MIT
- 最新版本:v0.7.9
原文链接:https://www.reddit.com/r/rust/comments/1t2iyy5/rhwp_079_a_rustwasm_viewereditor_for_hwphwpx/
PicoKubelet:在ESP32上运行的真实Rust Kubelet
项目概述
picokubelet 是一个运行在 ESP32-S3 开发板上的 no_std Rust kubelet 实现,能够把自己注册成 k3s 集群里的合法工作节点,调度器会把它当成真实节点看待。
技术栈
- 硬件平台:Waveshare ESP32-S3-ETH
- 核心框架:esp-hal + embassy
- 网络通信:embedded-tls 连接 k3s API Server
- 并发架构:两个协调器任务共享一个
ApiClient - 数据序列化:当前主要依赖手写 JSON 输出
已实现功能
- 节点注册、租约续期、状态报告
MemoryPressure绑定真实堆内存- Wi-Fi 断线恢复且不丢状态
lastTransitionTime仅在状态变化时更新
值得关注的点
它明确不会运行 Pod,但已经把一个嵌入式 no_std Rust 节点接进了真实 k3s 控制面,这个方向本身就很有意思。
原文链接:https://www.reddit.com/r/rust/comments/1t2nt64/picokubelet_a_real_rust_kubelet_on_a/
WasmGPU:基于 WebGPU × WebAssembly 的渲染和计算引擎
项目简介
WasmGPU 是一个面向浏览器端科学工作负载的渲染与计算引擎,把 TypeScript WebGPU 引擎和 Rust WebAssembly 驱动组合在一起。
技术架构
- 核心实现:WebAssembly 部分由 Rust 编写
- Rust 负责关键路径,包括:
- 面向数据的变换存储和传播
- 动画与 glTF 资源处理
- 边界计算与视锥剔除
- ndarray 索引与 JavaScript 互操作的零拷贝暂存
- 经由 Binaryen 和 SIMD128 优化的低分配运行时基础设施
性能表现
在 RTX 4060 上的银河系示例测试中:
- 25 万个点:约 450 fps
- 838 万个点:约 45 fps
项目资源
- 代码仓库:https://github.com/Zushah/WasmGPU
- 项目网站:https://zushah.github.io/WasmGPU
- 在线示例:https://zushah.github.io/WasmGPU/examples/galaxy.html
原文链接:https://www.reddit.com/r/rust/comments/1t1pprc/webgpu_webassembly_rendering_and_computing_engine/
评论区
写评论还没有评论