热门关键词:

网络分配器:rust最新版Rust 1.32.0释出预设使用系统分配器

01-20
01-20,数码网络分配器:rust最新版Rust 1.32.0释出预设使用系统分配器最新消息报导,手机发烧友数码

Rust将发表最新的版本,过去因为种种原因使用jemalloc作为预设分配器,但是现在Rust 1.28将加入全域分配器,快来看一下是这样的吗?官方也就顺势在这个版本,将预设分配器切换成系统分配器。

Rust释出了最新的更新版本1.32.0,新增了方便侦错用的dbg巨集,更换了预设的分配器,从原本预设使用jemalloc改为系统分配器。

Rust 1.32.0加入了dbg巨集(Macro),这个巨集是列印侦错流开发者(Print Debugger)一大福音,过去用println!列印变数,要麻烦地设定参数,而使用dbg,只需要把参数丢进dbg!中,就能简单地显示变数中的值,而且还不需要担心上下文。当开发者有好几个println!需要处理,便很容易混淆,除非开发者想要多花费心力,自己增加上下文。

官方还提到,开发者使用println!并不是好习惯,因为println!列印标准输出,反而eprintln!会是一个比较好的选择,因为eprintln!列印标准错误,而使用dbg!也不需要担心,该巨集以正确的方式处理标准错误。虽然dbg!只是一个小巨集,但是却能帮助开发者的侦错体验。

过去Rust使用jemalloc而非系统分配器(Allocator),虽然普遍认为jemalloc的效能比较好,但随着时间发展,情况已经改变了,不过,官方却也越来越难把jemalloc拿掉,因为势必造成部分使用jemalloc的程式发生错误。另外,jemalloc只是特定平台的预设配置,在Windows上,早已使用系统分配器很长一段时间了。

 

官方提到,虽然jemalloc效能不错,但也有其缺点,像是jemalloc会增加每个Rust二位元档案约300Kb的大小。基于种种原因,加上从Rust 1.28开始提供全域分配器,因此官方也就在Rust 1.32把预设分配器切换成系统分配器,但开发者仍然可以从Crate使用到jemalloc。

 

此外,在过去两个发布版本中,官方对模组系统进行了一些改进,而在Rust 1.32.0完成最后一步,统一路径现在允许之前无效的输入路径语句,其解析的方法与非输入路径的方式相同。到这个版本,官方已经完成模组系统的简化工作。

  • 赞助商广告