\

看新闻很累?看技术新闻更累?试试下载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

\\

Ruby 2.5.0概览相关推荐

  1. Ruby 2.2.0发布,支持增量式垃圾收集和符号的垃圾收集

    Ruby 2.2.0已于2014年12月25日发布,这是给Ruby开发者的圣诞礼物.该版本的亮点包括一些垃圾收集方面的改进:引入了一个新的增量式垃圾收集算法,支持对符号(Symbol)进行垃圾收集.核 ...

  2. 如何在Mac OSX Yosemite中将Ruby版本2.0.0更新到最新版本?

    本文翻译自:How to update Ruby Version 2.0.0 to the latest version in Mac OSX Yosemite? I need to update m ...

  3. 微信回应朋友圈表情包评论关闭:灰度测试;Twitter漏洞波及1700万用户;Ruby 2.7.0发布 | 极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  4. /usr/local/ruby/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such

    错误详情: 2: from ./redis-trib.rb:25:in `<main>' 1: from /usr/local/ruby/lib/ruby/2.5.0/rubygems/c ...

  5. 华为天才少年稚晖君被曝离职;苹果 A16“挤牙膏”原因曝光;​Ruby 3.2.0 发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  6. .rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/rubygems/...:in `require':

    在生成pod模板库是发现一个错误导致模板库生成错误: .rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb ...

  7. 编译的 Ruby 2.3.0 缺少 openssl 支持的解决方法 (已解决)

    我的系统是centos 7.5,已离线安装ruby-2.3.0,openssl-1.0.2l,rubygems-2.7.4 如下图: 但是在  gem sources -a http://gems.r ...

  8. Ruby On Rails-2.0.2源代码分析(1)-Rails的启动

    前言 本文主要是针对Ruby On Rails 2.0.2的源代码进行分析,学习与研究.所使用的工具是NetBean 6.1 Beta,WEBRick,SciTE,ruby-debug-base(0. ...

  9. ASP.NET MVC 音乐商店 - 0 概览

    下载地址:http://mvcmusicstore.codeplex.com/ MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用 ...

最新文章

  1. 在开发流程中嵌入安全测试
  2. python中new方法详解及_Python中new方法的详解
  3. vista任务栏透明_在Windows XP中获取Vista任务栏缩略图预览
  4. sublime学习笔记
  5. 怎样挑选最健康的酸奶?
  6. mysql数据库5.7配置文件_mysql数据库5.7版本部署
  7. linux 权限管理命令
  8. MongoDB学习笔记(四)--索引 性能优化
  9. 创建单实例WPF应用程序的正确方法是什么?
  10. linux mdel 命令详解
  11. 关于郑州大学校园网锐捷客户端禁止热点分享,禁止多网卡的解决办法
  12. vb6.0 编写用modbus通信的小程序
  13. 【时间序列分析】02. 线性平稳序列
  14. 人工智能与心理学(人工智能最终方向)
  15. osi模型:七层模型介绍_什么是OSI(开放系统互连)模型?
  16. 2022年第十四届蓝桥杯模拟赛【核酸日期】C语言详解
  17. 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”
  18. powerdesigner中cmd模型中多对多_拼多多,在喧嚣中本分前行
  19. 详解开发、实施、运维的区别
  20. Hadoop高手之路4-HDFS

热门文章

  1. 数学战神app(小学生四则运算app)进度
  2. [转]免费邮件服务器hMailServer搭配SpamAssassin过滤垃圾邮件:安装和设置
  3. 深入理解 Linux Cgroup 系列(二):玩转 CPU
  4. 豪掷十亿拿下CUBA运营权,阿里体育未来也许并不轻松
  5. 消息称中国商务部已批准高通收购恩智浦
  6. jquery获取元素在文档中的位置信息以及滚动条位置(转)
  7. jquery的文档处理(部分)
  8. 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
  9. 模拟红绿灯交替指示编程思路
  10. css 命名规范 BEM