Ruby 2.5.0概览
\
看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!
\
\\
六年来,Ruby一直遵循每年圣诞节期间新发布一个主版本的传统。去年12月25日,Ruby 2.5.0发布。
\\
Ruby 2.5.0主要是给出了多个性能相关的改进,其中最显著的改进是从字节码中移除了所有追踪指令,这使性能上提高了5%到10%。最初,添加追踪指令是为了支持TracePoint。但是在很多情况下,TracePoint并未使用,只是增添了开销。现在,Ruby转而支持动态指令技术(dynamic instrumentation)。其它一些性能相关的改进包括:以参数形式传递代码块(Block)的性能提高了三倍,从模板生成ERB代码的性能提高了两倍。一些Ruby内建函数的性能也得到了改进,其中包括Array#concat
、String#concat
和Enumerable#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概览相关推荐
- Ruby 2.2.0发布,支持增量式垃圾收集和符号的垃圾收集
Ruby 2.2.0已于2014年12月25日发布,这是给Ruby开发者的圣诞礼物.该版本的亮点包括一些垃圾收集方面的改进:引入了一个新的增量式垃圾收集算法,支持对符号(Symbol)进行垃圾收集.核 ...
- 如何在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 ...
- 微信回应朋友圈表情包评论关闭:灰度测试;Twitter漏洞波及1700万用户;Ruby 2.7.0发布 | 极客头条...
整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...
- /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 ...
- 华为天才少年稚晖君被曝离职;苹果 A16“挤牙膏”原因曝光;Ruby 3.2.0 发布|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- .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 ...
- 编译的 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 ...
- Ruby On Rails-2.0.2源代码分析(1)-Rails的启动
前言 本文主要是针对Ruby On Rails 2.0.2的源代码进行分析,学习与研究.所使用的工具是NetBean 6.1 Beta,WEBRick,SciTE,ruby-debug-base(0. ...
- ASP.NET MVC 音乐商店 - 0 概览
下载地址:http://mvcmusicstore.codeplex.com/ MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用 ...
最新文章
- 在开发流程中嵌入安全测试
- python中new方法详解及_Python中new方法的详解
- vista任务栏透明_在Windows XP中获取Vista任务栏缩略图预览
- sublime学习笔记
- 怎样挑选最健康的酸奶?
- mysql数据库5.7配置文件_mysql数据库5.7版本部署
- linux 权限管理命令
- MongoDB学习笔记(四)--索引 性能优化
- 创建单实例WPF应用程序的正确方法是什么?
- linux mdel 命令详解
- 关于郑州大学校园网锐捷客户端禁止热点分享,禁止多网卡的解决办法
- vb6.0 编写用modbus通信的小程序
- 【时间序列分析】02. 线性平稳序列
- 人工智能与心理学(人工智能最终方向)
- osi模型:七层模型介绍_什么是OSI(开放系统互连)模型?
- 2022年第十四届蓝桥杯模拟赛【核酸日期】C语言详解
- 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”
- powerdesigner中cmd模型中多对多_拼多多,在喧嚣中本分前行
- 详解开发、实施、运维的区别
- Hadoop高手之路4-HDFS