【Rust日报】2026-08-26 Plush:64 位标签值让解释器提速 17%
内容提要
本文介绍Rust社区多个项目:Plush解释器用64位标签值替换枚举,提速17%;PhastFT纯安全Rust实现高性能FFT,比RustFFT快2倍;PumpkinMC纯Rust Minecraft服务端开放Beta;ModuRL基于Candle的深度强化学习框架,支持多种算法。
延伸解读
Plush 提速的底层逻辑
Plush 通过将 Rust 枚举替换为 64 位标签值,利用低位 tagging 在单个寄存器中表示动态类型值,减少了内存占用和缓存流量。这种优化在指针追逐场景(如二叉树、链表)中效果显著,峰值内存最多降低 37%。对于解释器设计者,这提示了值表示的选择对性能有直接影响,但需注意 8 字节对齐等约束。
PhastFT 的适用场景与限制
PhastFT 主打纯安全 Rust 和高性能,通过 safe SIMD 和运行时选择最快实现,在大尺寸 FFT 上比 RustFFT 快约 2 倍且内存减半。但当前仅支持 2 的幂长度,非 2 幂长度仍在开发中。因此,若你的应用需要任意长度 FFT,可能仍需等待后续版本或使用其他库。
PumpkinMC 的成熟度评估
PumpkinMC 经过 28 个月开发后开放 Beta,1.0 计划于 2026 年 9 月发布,但 1.0 仅保证游戏可通关,1:1 原版地形生成仍是后续目标。这意味着当前版本可能无法完全替代官方服务端,适合对性能和多线程有需求的玩家尝鲜,但需注意功能完整性。
ModuRL 的基准对比需谨慎看待
ModuRL 在 CPU 小网络基准中相对 Python 实现有数倍加速,但项目仍处早期,API 可能变动。基准仅覆盖 CartPole 和 Pendulum 等简单环境,实际复杂任务中的表现可能不同。建议在评估时关注其算法覆盖和稳定性,而非仅依赖基准数字。
Q&A
Plush 解释器如何实现 17% 的提速?
Plush 解释器将原先带标签的 Rust enum 替换为包裹 u64 的 newtype,采用低位 tagging 技术,使得 Value 从 16 字节降为 8 字节,从而提升性能约 17%。
PhastFT 相比 RustFFT 有哪些优势?
PhastFT 是纯安全 Rust 实现的高性能 FFT 库,在大尺寸上比 RustFFT 快约 2 倍,内存占用少约一半,并且支持多线程(通过 rayon),而 RustFFT 目前不支持多线程。
PumpkinMC 是什么?它的 1.0 版本目标是什么?
PumpkinMC 是完全用 Rust 从零实现的 Minecraft 服务端,旨在提供高性能和可扩展插件能力。1.0 版本的首要目标是让游戏可从头到尾通关,而 1:1 原版地形生成仍是后续目标。
ModuRL 支持哪些强化学习算法?
ModuRL 0.1 实现了 PPO、A2C、SAC、DDPG、TD3、DQN 和 DDQN 等算法。
Plush 的 Value 表示中,整数是如何存储的?
Plush 的 Value 使用 64 位标签值,其中 fixnum 是 62 位有符号整数,低 2 位为 00,用于标记类型。整数加减可以直接在 tagged word 上完成。
PhastFT 支持哪些 SIMD 指令集?
PhastFT 通过 fearless_simd 支持 SSE4.2、AVX2、NEON 和 WASM,并在运行时选择最快实现。
PumpkinMC 的插件 API 有什么特点?
PumpkinMC 的插件 API 支持多语言编写逻辑,并且项目提供配置化裁剪功能。
ModuRL 的性能表现如何?
在小网络 CPU 对照基准中,ModuRL 相对 Python 实现有数倍端到端加速,例如 PPO 中位约 2.1 秒,相对 SB3 runner 约 4.5 倍。