2018年1月26日星期五

Ruby 2.5.0 概览


Linuxeden 开源社区 --

作者 Alex Giamas ,译者 盖磊  

六年来,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

转自 http://ift.tt/2EegazK

              

The post Ruby 2.5.0 概览 appeared first on Linuxeden开源社区.

http://ift.tt/2DzGu5Z

没有评论:

发表评论