返回 登录
0

Mozilla的Rust提高了速度,并且更加简洁

阅读10281

2016年5月13日-15日,由CSDN重磅打造的2016中国云计算技术大会(CCTC 2016)将于5月13日-15日在北京举办,今年大会特设“中国Spark技术峰会”、“Container技术峰会”、“OpenStack技术峰会”、“大数据核心技术与应用实战峰会”四大技术主题峰会,以及“云计算核心技术架构”、“云计算平台构建与实践”等专场技术论坛。大会讲师阵容囊括Intel、微软、IBM、AWS、Elastic、Databricks、Hortonworks、百度、阿里、腾讯、华为、乐视、京东、小米、微博、迅雷、国家电网、中国移动、长安汽车、广发证券、民生银行、国家超级计算广州中心等60+顶级技术讲师,CCTC必将是中国云计算技术开发者的顶级盛会。详情访问CCTC 2016官网。

Mozilla优化了Rust语言的编译器,提高了编译速度和运行效率,类型检查代码更加明确。

更新的内容,上周Mozilla已经发布在了博客上。这次更新,引入了Rust的开发者叫它“中间层”(midlevel intermediate representation,MIR)的步骤,这是编译过程中额外的一个步骤,在分析源代码和类型检查之后,LLVM编译器框架和转换成机器码之前。

现在的步骤多一些,以后的步骤少一些

表面上看起来,这是自相矛盾的——如果MIR在编译的过程增加了额外的步骤,那怎么能提高编译速度?

Rust的工程师解释道,MIR的目的是去掉Rust的语法内容,将其编程更简单的代码结构,使编译器更容易操作。但是这种代码对程序员来说是不友好的,所以使用MIR来自动生成,这意味这编译器可以处理更加结构化、更容易优化的代码。

Rust的blog展示了一个优化循环的例子。优化循环是使用一种程序员不喜欢的方式来代替,和复杂的goto语句有点像,但是编译器可以更聪明地帮助人来决定使用什么方式更快。这种优化也用在了流程控制、表达式匹配等方面。

这种方式也有先例。比如苹果的Swift语言,使用LLVM编译,也有类似的中间层,叫做SIL.但不像Rust使用MIR那样,Swift使用SIL的优化并不能简单地配合LLVM实现,比如Swift使用引用技术进行内存管理等原因。

Rust工程师说,使用MIR有很多好处。比如,编译器可以只重新编译改变了的部分,这样,通过只处理新的MIR语法的代码,可以提高速度。

通过MIR,可以做很多针对Rust的优化(不由LLVM实现)。比如一些计划的优化例如内存清理得以实现。

那么什么时候可以使用这项特性呢?答案是:很快。因为MIR这想工作从提出到实现已经有一年多了,所以现在的展示几乎是一个结束的宣告,而不是开始。

Rust的开发者说:“等我们Crater(Rust的编译测试)对MIR的测试结果良好了,我们将会把它设置为默认开启。”

原文:Mozilla’s Rust language doubles down on speed and simplicity
翻译:赖信涛
责编:孙思

评论