🌀 AIBB-Flywheel

新闻数据飞轮
← 返回文章列表
ithome 其他 采集 2026-08-22T04:11:55+00:00

Rust 1.98 发布:打破浮点运算性能瓶颈

原始标题:Rust 1.98 发布:打破代数运算性能瓶颈,编译器可重排更多运算

来源
ithome
发布时间
2026-08-22T01:12:36
采集批次
2026-08-22-04
字数
741
URL 指纹
8d30f5da2f426790

📌 AI 总结(298 字)

Rust 团队发布 1.98 版本,重点引入针对 f32 和 f64 浮点类型的「代数浮点」方法(algebraic_add、algebraic_mul 等)。传统 IEEE 754 标准因浮点加法不具结合律,编译器无法重排运算,导致 Rust 点积运算性能仅为 C++ 的八分之一。新方法允许编译器激进重排与并行计算,大幅提升 SIMD 向量化能力且不引发未定义行为。此外,1.98 版本为所有原生整数类型引入 format_into 方法并稳定 NumBuffer,绕过动态分发以减少性能损耗;同时更新 ManuallyDrop 文档,明确释放 Box 后移动其包裹结构将告别未定义行为风险。
📄 正文(741 字)
IT之家 8 月 22 日消息,科技媒体 Linuxiac 昨日(8 月 21 日)发布博文,报道称 Rust 团队更新推出 1.98 版本,重点加入面向 f32 和 f64 浮点类型的「代数浮点」方法,同时加快整数格式化,并稳定多项标准库 API。

本次更新重点针对 f32 和 f64 浮点数引入了全新的代数运算方法,包括 algebraic_add、algebraic_sub、algebraic_mul、algebraic_div 以及 algebraic_rem。

在传统的 IEEE 754 标准下,由于浮点数加法不具备严格的结合律,编译器在优化时无法重新排序运算顺序,这曾导致 Rust 在处理简单的点积运算时,性能速度是 C++ 的八分之一。

新引入的代数方法允许开发者在特定代码块中告知编译器:该部分可以遵循实数的代数性质进行激进重排与并行计算。这一改动不仅大幅增强了循环向量化(SIMD)的能力,成倍提升了数值计算效率,而且不会引发未定义行为(UB)。

在底层工具链方面,Rust 1.98.0 为所有原生整数类型带来了全新的 format_into 方法,并同步稳定了 NumBuffer 类型。该方法通过直接将整数格式化写入预分配的透明缓冲区中,完全绕过了传统的动态分发(Dynamic Dispatch),其执行效率已能与业界知名的 itoa 依赖库相媲美,极大地减少了不必要的性能损耗。

同时,新版本更新了 ManuallyDrop 的官方文档,为 ManuallyDrop 与 Box 的交互提供了长期的稳定性保证。这一修改明确承诺:在显式释放 Box 后移动其外层 ManuallyDrop 包裹结构的操作,在未来将彻底告别未定义行为风险。