APP下载

Rust1.28释出,开发者现在可用全域分配器了!

消息来源:baojiabao.com 作者: 发布时间:2024-05-02

报价宝综合消息Rust1.28释出,开发者现在可用全域分配器了!

距离上一个更新两个月后,Rust释出了1.28版本。Rust 1.27版本让开发者可以直接撰写低阶SIMD语法,而在1.28版本,官方释出了稳定版的全域分配器(Global Allocators)以及NonZero数字型态,而Rust的套件管理器Cargo也有更新。

分配器是Rust应用程序向系统请求内存的方法,过去Rust不允许改变获取内存的方式,而这样的限制阻挡了一些使用案例。在部分平台上,开发者必须要使用另外的系统分配器jemalloc,但开发者并没有方法可以控制这个关键元件。

在Rust 1.28上,现在#[global_allocator]属性已经进入稳定阶段,能让Rust程式配置他们的分配器为系统分配器,并且借由实作GlobalAlloc特性来定义新的分配器。部分平台上Rust程式的预设分配器是jemalloc,而现在标准函式库提供了系统分配器的Handle,只要宣告静态变数,并且以#[global_allocator]属性标记,就能够在需要的时候切换到系统分配器。

当开发者想要定义客制化的分配器也没问题,透过实作GlobalAlloc特性也可以轻松做到。

另一个进入稳定版本的函式库为NonZero数字类型,这些标准非带号(Unsigned)整数型态有NonZeroU8、NonZeroU16、NonZeroU32、NonZeroU64、NonZeroU128和NonZeroUsize。这些型态能帮助开发者进行容量最佳化,像是Option是2个字节,而Option则只有1个字节大小,而且无论这些整数型态被包在什么结构当中,都不影响最佳化的结果,例如当NonZeroU8并非放在Option中,而是放于Door里,仍然为一个字节大。

此外,在Rust的套件管理器Cargo的更新,现在不再允许使用者以修改Src目录的建置脚本发布套件。

2018-08-06 20:31:00

相关文章