写点什么

Rust 最新版本 1.23 揭秘

  • 2018-01-15
  • 本文字数:945 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

内存使用率的减少是 Rust 最新版本中最显著的优化,这通过避免不必要的拷贝来实现。此外,rustdoc目前使用一个兼容 CommonMark 的引擎来渲染文档。

据 Rust 团队称,通过避免为特定对象创建副本,rustc内存使用率降低了 5-10%,尽管这个数据可能随着被编译的具体程序而变化。rustc目前强制本地变量和方法参数要完全相同。这可以在 rustc将参数绑定给一个本地变量时不必再创建一份这个参数的拷贝。这个拷贝行为是原来就存在的因为本地变量和参数在 MIR 级别的不同而需要进行的遗留处理行为,并在某个时间点被移除。除了优化内存使用率,这种优化还可以通过避免同时显示本地变量和传入参数的信息而使得调试信息更加清楚。当本地变量绑定了一个可变的值时,调试信息会变得更加混乱,因为在参数没有改变的同时调试器可能会显示本地变量在变化。

另外一个有趣的变更是,rustc提供在 LLVM 中对 TrapUnreachable 的支持,这使得 LLVM 将 unreachable 指令翻译成硬件陷阱。以前,控制流可以绕过无法到达的指令,访问到内存中在这条指令之后执行的代码。现在,这个变更可以降低 unreachable 代码的未定义行为的影响。

在文档方面,rustdoc一直努力完全兼容 CommonMark。在 Rust 1.23 版本中,文档用 Rust 语法渲染器—— Hoedown 和兼容 CommonMark 的渲染引擎进行渲染。这种行为会保持一段时间,在渲染过程中如果有差别被发现,rustdoc会给出警告,从而让文档维护人员修复这些差别。在将来的版本中,兼容 CommonMark 的引擎会成为默认引擎。

Rust 1.23 版本还增强了一些库的稳定性,包括增加对原始类型的AsciiExt trait 。这意味着,u8、char 和str 不用导入 AsciiExt` trait 就可以使用它的任何方法。

Rust 的包管理器——Cargo,也进行了优化,包括支持一次性卸载多个包以及用cargo install --version 来安装某个包的特定版本

Rust 1.23 包含了许多变更和优化,可以通过运行rustup update stable 来更新。

查看英文原文: Rust 1.23 Improves Memory Usage and More


感谢罗远航对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-01-15 18:002161

评论

发布
暂无评论
发现更多内容

Java8新特性-Optional

爱好编程进阶

Java 程序员 后端开发

助力提升研发效能的“黄金三角”

博文视点Broadview

大数据培训Spark SQL知识点与实战分析

@零度

spark 大数据开发

Java-进阶:集合框架1

爱好编程进阶

程序员 后端开发

使用APICloud & MobTech SDK 快速实现分享到社交平台功能

YonBuilder低代码开发平台

APP开发 APICloud MobTech袤博科技 社交分享

使用xdebug调试php详细教程

CRMEB

蚂蚁三面被挂,幸获内推,历经5轮终于拿到口碑offer

Java架构追梦

java面试 后端开发 程序员面试 大厂Offer

OpenHarmony新增两个分布式能力!快来了解~

科技汇

简述数仓的时间域函数

华为云开发者联盟

数据库 时间 时间戳 GaussDB(DWS) 时间域函数

web前端培训React 中Router的必备知识点

@零度

前端开发 React

原生JavaScript灵魂拷问(二),你能全部答对吗?

战场小包

JavaScript 前端 4月月更

GitHub上超火的阿里调优专家的677页Java性能调优笔记,已让我拿下5个offer

爱好编程进阶

Java 程序员 后端开发

与多家机构战略合作,背后彰显PlatoFarm元宇宙龙头的实力

西柚子

华为云持续快速增长,IaaS市场排名中国第二、全球第五

科技热闻

【架构视角】一篇文章带你彻底吃透Spring

潘大壮

spring 后端 springboot 后端开发

划重点,2022 常见的面试题和八股文都为大家总结出来了

Java架构追梦

程序员 java面试 后端开发 Java面试八股文

Hibernate实现CRUD(附项目源码)

爱好编程进阶

Java 程序员 后端开发

聊聊如何在华为云IoT平台进行产品开发

华为云开发者联盟

物联网平台 IoT 华为云 iotda 设备接入

DM 是如何处理 DML 的丨TiDB 工具分享

PingCAP

云电脑的四重守护,安全有谱

天翼云开发者社区

安全 云电脑

【高并发】如何使用互斥锁解决多线程的原子性问题?这次终于明白了!

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

Java培训MySQL体系构架、存储引擎和索引结构

@零度

MySQL JAVA开发

java不使用客户端授权密码直接用账号密码发送带附件的邮件

爱好编程进阶

程序员 后端开发

秒云 (元来云志)获邀加入中国开源云联盟,共筑开源生态

MIAOYUN

开源 开源生态 开源中国

npm install xxxx --legacy-peer-deps命令是什么?

华为云开发者联盟

前端 npm install 依赖树 对等依赖关系

Java中当对象不再使用时,不赋值为null会导致什么后果?

爱好编程进阶

Java 程序员 后端开发

HDI硬件设备接口介绍

科技汇

我以为自己MySQL够牛逼了,直到看到了Alibaba的面试题,是我不配了。。

Java架构追梦

Java 后端开发 MySQL 运维 程序员面试

JAVA API调用elasticsearch实现基本增删改查

爱好编程进阶

程序员 后端开发

低通信量是筛选分布式多方安全计算常用安全协议方案的先决条件

易观分析

安全多方计算 低通信量

蒙牛乳业加入星策开源社区,携手推动企业智能化转型建设

星策开源社区

人工智能 机器学习 企业数智化 智能化转型

Rust最新版本1.23揭秘_语言 & 开发_Sergio De Simone_InfoQ精选文章