rust 1.9发布,提高了速度和错误处理 -买球官网平台

1顶
0踩

rust 1.9发布,提高了速度和错误处理

2016-06-20 14:31 by 副主编 mengyidan1988 评论(0) 有6139人浏览



在的新build系统首次亮相一个月之后,便横空出世。这个版本中,编译速度大大提升,跨平台的工具增强,语言自身加强了对错误的处理。

最新的版本为开发者们提供了最实际的便利。如博客中所介绍,1.9版本加强了std:panic模块的稳定性。如果某个线程引起了rust的程序恐慌时——遇到了期望之外的错误——一个新的apicatch_unwind就可以从另一个线程打断处于恐慌的线程,从而让应用从整体上对错误的处理能力更高。

另一个改变是,一个跨平台的管理工具。rustup可以让开发者在不同的平台使用和切换。由于使用llvm的原因,rust理论上是一个跨平台的语言,但是管理工具其实并不友好。rustup改变了这个问题,虽然还有些问题没有解决,比如装配c语言写的某些rust组件(编译与c有关的依赖)。

rust的维护者说:“虽然这项功能现在暂时没有发布,但是我们希望能在接下来的几个月中将其合并到语言中。”

rust 1.9带来的一系列微小但是颇有意义的优化从整体上大大提高了程序的执行和编译速度。一种新的优化“允许一般的代码自动的根据一些特殊类型的信息变成特殊的代码”,从而可以进一步做针对性的优化。另一项优化提升了相等测试的速度,让一些代码的速度大大提高。

另一项有用的改变是第三方库中的api可以添加警告注释了。鉴于rust环境快速发展的今天,尤其是第三方库的迅速增长,这个特性比它看起来要重要的多。开发者在某些东西被废弃之后对用户提供警告(例如,它所依赖的rust特性被废弃或者重构)有了一种优雅的方式。

rust开发者2016年定了雄心勃勃的目标,目前大多数都被快速实现了,例如精简标准库等。某些还有待实现,比如用来缩短大型项目重新编译时间的递增编译,但是四月的mir显示了这想工作的前奏。

原文:
作者: serdar yegulalp
翻译:赖信涛
责编:钱曙光
  • 大小: 576.6 kb
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 文章目录一、返回错误与异常处理optionresult: option...rust book 对 rust 中的错误处理有详细的讲解,本文对其中一些选择背后的原因进行了思考和总结。强烈建议先看原文。 一、返回错误与异常处理 名正则言顺,我们先

  • 摘要:ruby是一种简单快捷面向对象的脚本语言,而rust是一种系统编程语言,它有着惊人的运行速度,能够防止段错误,并保证线程安全。本文作者以项目为例,结合大量的编程代码描述了如何借助rust语言提高ruby的性能,...

  • letoption集合vector容器string代码组织命名空间访问其他mod和crate访问权限和关键字访问其他文件中的对象使用第三方库异常处理泛型泛型概念特性(接口)文件和io面向对象并发编程线程消息传递互斥锁代码说明引用...

  • 本篇文章是[《rust程序设计语言》](https://kaisery.github.io/trpl-zh-cn/title-page.html)第一~六章笔记

  • 本文阐述了 discord 从 go 切换至 rust 的深层原因,并分析了在内存管理中 go 面临的一些固有问题,作者同时对比了 go 和 rust 在 discord read states 服务中的性能。 在各个领域,rust 都已经成为一流的语言...

  • 注 - 本教程是使用 go 1.9 版和 googollee/go-socket.io 编写的 websockets 我觉得非常有趣,在应用程序之间通信中使用标准 restful api 方案之外,它为我们提供了一个替代选项。使用套接字,我们可以做到成千上万...

  • docker是一个非常跨时代的工具,是在继虚拟化之后的新一个好用易用的工具,可以极大提升开发和部署的效率。本文将解决一个在mac上部署docker之时碰到的问题。 环境介绍 操作系统: macos 10.13.2 (17c205) ...

  • 欢迎使用python packaging用户指南,这是一系列教程和参考资料,可帮助您使用现代工具分发和安装python包。 本指南由python packaging authority在github上维护。我们乐意接受任何贡献和反馈。

  • day14-15 装饰器、模块、包、系统常用模块(数学...不重命名 import file_manager.csvfile # 该行代码只执行包中的__init__.py文件和csvfile.py文件 print(file_manager.csvfile.aa) file_manager.csvfile.read_file() #...

  • “我之所以要翻译这本书,也是源于我对大数据生态圈的理解和判断。与传统的mr 计算框架相比,spark 有着足够的性能和易编程方面的优势,并且spark 本身也正在形成自己的生态体系。而spark 的原生语言scala 将面向...

  • pls := [][]string { {"c", "c "}, {"javascript"}, {"go", "rust"}, } for _, v1 := range pls { for _, v2 := range v1 { fmt.printf("%s ", v2) } fmt.printf("\n") } } 上面程序的输出如下: c c  ...

  • 这两天看csdn有一些关于... client方与server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2.短连接  client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连

  • 官方文档: ...一、基础环境安装 1、升级python [[email protected] ~]# yum install epel-release -y [[email protected] ~]# yum install python36 python36-pip -y 2、安装virtualenv [[email protected] ~]# pip3.6 install...

  • 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《go高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行go语言实战深入,驾驭~ 这些年我学过...

  • 是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃go语言,就是因为两个“不爽”:第一,对go语言本身不爽;第二,对go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有...

  • 摘要: webassembly未来可期。 原文:javascript是如何工作的:与webassembly比较及其使用场景 作者:前端小智 fundebug经授权转载,买球官网平台的版权归原...javascript是如何工作的:引擎,运行时和调用堆栈的概述! javasc...

global site tag (gtag.js) - google analytics