设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 Firefox 查看内容

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

2016-5-2 21:14| 发布者: joejoe0332| 查看: 2160| 评论: 0|原作者: csdn|来自: csdn

摘要: Mozilla优化了Rust语言的编译器,提高了编译速度和运行效率,类型检查代码更加明确。更新的内容,上周Mozilla已经发布在了博客上。这次更新,引入了Rust的开发者叫它“中间层”(midlevel intermediate representati ...

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 
翻译:赖信涛


酷毙

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部