2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Rust 1.9 改善了错误处理机制并提升了编译性能

  • 2016-06-15
  • 本文字数:742 字

    阅读完需:约 2 分钟

最近发布的Rust 1.9 增加了一个新的异常处理API,让开发者在处理跨线程异常传播的时候能够增加更多的控制。此外新版本还提升了变量判等时的编译性能。

正如前面所提到的, std::panic增加了一个新的catch_unwindAPI,Rust 使用它来处理异常,同时允许开发者更好地控制由异常触发的堆栈展开过程。Rust 在这种场景下的哲学是“快速失败”,也就是在展开堆栈之后停止唤起的线程,但是其他线程不受影响,可以继续运行,直到它们试图与出错的线程通信为止,只有当需要与出错的线程通信时才需要做一些恢复工作。通过使用catch_unwind,开发者能够捕获 panic 并将其转换成失败线程中的普通错误:

复制代码
let result = panic::catch_unwind(|| {
panic!("oh no!");
});
assert!(result.is_err());

该功能在下面两种场景中非常有用:

  • 将 Rust 嵌入其他语言的时候。在这种情况下 unwinding 很有可能会在语言边界处产生分割故障。
  • 当创建类库来管理线程的时候。在这种情况下,最好是将错误通知到客户端而不是停止失败的线程。

值得注意的是,堆栈展开目前是 Rust 处理 panic 的唯一策略,但是未来这种情况会改变。确实,通过一种新的“终止”策略从而避免堆栈展开的成本可能更可取。

新的Rust 版本还提升了两个变量判等时的编译性能。 PR 的提交者 Markus Westerlind 声称在某些情况下提升非常明显,复杂性从 O(n!) 降低到了 O(n)。正如 Westerlind 在 Reddit 上所解释的,尽管 n 通常都非常小,但是代码中细微的差别都有可能使得 n 膨胀。在这些场景下,恰如 Westerlind 的 combine 库所展示的,Rust1.9 在性能上有极大的提升。

此外,Rust1.9 还提升了许多库函数的稳定性,包括网络、编码以及指针处理函数。

如果你想了解更多信息可以查看 Rust1.9 的官方声明

查看英文原文 Rust 1.9 Improves Error Handling and Compile Time

2016-06-15 19:001749
用户头像

发布了 321 篇内容, 共 126.7 次阅读, 收获喜欢 19 次。

关注

评论

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

YMatrix 入选《中国物联网新物种企业发展报告2024》,助力物联网产业创新发展

YMatrix 超融合数据库

数据库 物联网 超融合数据库 YMatrix

【亚马逊4.9风靡全球】播放量超2亿次的《基建大百科》引进出版!

博文视点Broadview

观测云可用性 SLO 之跨多空间年度汇总统计

观测云

SLO

倒计时1天!龙蜥社区走进中科方德MeetUp演讲亮点一览

OpenAnolis小助手

操作系统 龙蜥社区 中科方德 龙蜥meetup

求同尊异 龙蜥鼎力支持开源生态发展合作倡议

OpenAnolis小助手

开源 操作系统 龙蜥社区

HyperWorks变形域和控制柄方法

智造软件

hyperworks 变形域 仿真教程

层出不穷的大模型技术,真的助力研发了吗?

思码逸研发效能

AI 研发效能 大模型 效能度量 AI辅助

钉钉开启全球化“下一站”,登陆中国香港市场

ToB行业头条

钉钉 出海

观测云产品更新 | OpenAPI、应用性能监测、DQL 查询等

观测云

产品迭代

正义不打烊!法行宝携手北京市丰台区司法局,共同点亮智慧普法新道路

科技热闻

17年深耕中国互联网与云生态,英特尔携手合作伙伴助力行业数智化升级

E科讯

小程序免备案

HUODUNYUN

小程序 CDN CDN技术 小程序免备案 免备案

世界首次!智源研究院实现数字孪生心脏电功能超实时仿真

智源研究院

【连载 02】 多线程实现

FunTester

有哪些好用的私有化企业网盘?6款国内推荐

易成研发中心

8款OKR开源系统与非开源系统:全面比较与选择指南

易成研发中心

仿真软件的功能有哪些?仿真软件助力科研与工程领域

思茂信息

cst cst使用教程 CST软件

生态伙伴集体呼吁升级原生鸿蒙,近千元“鸿蒙有礼”先锋权益等你来领!

最新动态

如何在HarmonyOS NEXT中处理页面间的数据传递?

威哥爱编程

huawei HarmonyOS ArkTS HarmonyOS NEXT

LAZADA关键词搜索API接口的获取与应用

科普小能手

API 接口 lazada商品评价接口 lazada API接口 关键词搜索 lazada API

未成年人模式护航,保障安全健康上网

HarmonyOS SDK

HarmonyOS

分布式锁的实现原理

vivo互联网技术

redis zookeeper 分布式锁

你知道这些隐藏的编程技巧吗?提高代码质量的十大方法。

天津汇柏科技有限公司

编程技巧

ToB企业如何让客户满意,又兼顾盈利?MCtalk·CEO对话×销售易

ToB行业头条

SaaS

硬核议程一睹为快!龙蜥社区走进Arm MeetUp邀您报名

OpenAnolis小助手

操作系统 arm 龙蜥社区 龙蜥meetup

极狐GitLab 正式发布安全补丁版本17.6.1, 17.5.3, 17.4.5

极狐GitLab

gitlab

Web端IM聊天消息该不该用浏览器本地存储?一文即懂!

JackJiang

即时通讯;IM;网络编程

COMSOL工作站:配置指南与性能优化

GPU算力

数字孪生 高性能计算 仿真软件 #算法 COMSOL Multiphysics

Rust 1.9改善了错误处理机制并提升了编译性能_语言 & 开发_Sergio De Simone_InfoQ精选文章