BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ruby 2.5.0概览

| 作者 Alex Giamas 关注 8 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2018年1月26日. 估计阅读时间: 3 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

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

六年来,Ruby一直遵循每年圣诞节期间新发布一个主版本的传统。去年12月25日,Ruby 2.5.0发布。

Ruby 2.5.0主要是给出了多个性能相关的改进,其中最显著的改进是从字节码中移除了所有追踪指令,这使性能上提高了5%到10%。最初,添加追踪指令是为了支持TracePoint。但是在很多情况下,TracePoint并未使用,只是增添了开销。现在,Ruby转而支持动态指令技术(dynamic instrumentation)。其它一些性能相关的改进包括:以参数形式传递代码块(Block)的性能提高了三倍,从模板生成ERB代码的性能提高了两倍。一些Ruby内建函数的性能也得到了改进,其中包括Array#concatString#concatEnumerable#sort_by等,以及用于多线程的Mutex类。

除了一些性能上的改进,现在Struct.new支持创建接受关键词参数的类,do/end代码块可以直接与ensure/rescue/else控制流一并使用。

在对软件库的支持上,Ruby 2.5.0将一些标准软件库提升到缺省软件包(Gems)中,其中包括了cmath、csv、date、dbm、etc、fcntl、fiddle、fileutils、gdbm、ipaddr、scanf、sdbm、stringio、strscan、webrick、zlib等。同时,2.5.0内建了广为使用的pp命令,在程序中不再需要明确指明require pp,这是Ruby程序中最常出现的一行命令。

Ruby开发人员现在可以选择逆序输出堆栈跟踪(Stacktrace)信息。这样,堆栈跟踪中的重大错误消息显示在前面,而非最后显示。但是该特性是实验性的,可能会在随后的版本中移除。

Ruby 2.5.0还支持分支和方法覆盖度量,可以在代码执行期间对不同的方法和分支调用做更好的性能测试。

Ruby 2.5.0完全禁用了顶层常量查找(Constant Lookup),会给出一个警告,而非错误。新版本中添加了yield self,用于在自身的上下文中回调一个指定的代码块(译者注:语法糖)。不同于也是返回一个代码块的tap命令,该语法在对象链(Chaining)中十分有用。

Ruby 2.5.0可在官方网站下载。

查看英文原文: Ruby 2.5.0 Overview

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT