由 naruse 发表于 2014-12-25
翻译: Will(@Airmacho)
我们很高兴地宣布 Ruby 2.2.0 发布了。
Ruby 2.2.0 版本针对日益增多的各类需求,进行了许多更新和修正,增加了许多新的功能。
例如,Ruby 的垃圾回收器现在可以回收符号对象了。这会减少符号对象的内存占用,在 2.2.0 版本之前,GC 都是不能回收符号对象的。Rails 5.0 将开始使用符号GC技术,将只支持 Ruby 2.2 或之后的版本(参考 Rails 4.2 官方发布来获取更多内容)。
同时,新使用的增量垃圾回收器减少了停滞时间,对运行 Rails 应用非常有利。根据 Rails log指出 Rails 5.0 的开发,将更多的利用增量 GC 和符号 GC。
另一个与内存管理相关的功能是给configure.in
增加了新的选项,可以启用 jemalloc,请参考 Feature #9113。这个功能还在实验阶段,目前默认没有开启,我们需要收集实际使用和性能的数据来确认有良好的效果。确认之后这个功能会默认开启。
另外一个实验性的支持是用 vfork(2) 配合 system() 和 spawn() 使用。你可以阅读 tanaka-san 的博客(日文)来了解个更多信息。这个更改预计会大幅提升 process 执行外部命令的速度。但 vfork(2) 仍被完全理解,可能是一个危险的系统调用。我们会继续实验,直到通过收集性能数据和使用情况实例了解到究竟能提升多少效能。
请尝试并享受 Ruby 2.2.0,并告诉我们你的发现。
Ruby 2.1 以后的重要变更
- 增量 GC (在 RubyConf2014 上的演讲:“Ruby 解释器的增量 GC”)
- 符号 GC (RubyKaigi2014 演讲)
- configure –with-jemalloc Feature #9113
- 核心函数库:
- 内建函数库:
- 升级 Psych 至 2.0.8;
- 升级 Rake 至 10.4.2;
- 升级 RDoc 至 4.2.0;
- 升级 RubyGems 至 2.4.5;
- 升级 test-unit 至 3.0.8(从代码目录删除,现绑定在 tarball 中);
- 升级 minitest 至 5.4.3(从代码目录删除,现绑定在 tarball 中);
- 弃用 mathn;
- C API;
- 删除已弃用的API。
参考 NEWS in Ruby repository了解更多。
自 Ruby 2.1 以来,已修改 1557 个文件,新增代码 125039 行,移除代码 74376 行!
下载
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.bz2
- SIZE: 13304042 bytes
- MD5: d03cd4690fec1fff81d096d1c1255fde
- SHA256: 1c031137999f832f86be366a71155113675b72420830ce432b777a0ff4942955
- SHA512: 04edc53e8cd1732c3ca61ebeb1d6133614beb10f77f9abb80d8d36352fe8aa205112068e460bf600b2c7e81e0ddcc3b311e7e027c320366f1bd992b3e378a6ad
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz
- SIZE: 16494584 bytes
- MD5: cd03b28fd0b555970f5c4fd481700852
- SHA256: 7671e394abfb5d262fbcd3b27a71bf78737c7e9347fa21c39e58b0bb9c4840fc
- SHA512: 1ba0c68e1c8d2b60bbd1e218cf36463edbe34cf9418d7593702b631e68d02297465f752e71395f6cfa4104f4cd70a1eb44381ffb74bc7801758b830931fdcfc6
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.xz
- SIZE: 10304244 bytes
- MD5: 54b43c6c6c9dd4c4b08ceb03ad0ded7a
- SHA256: 848714e280fc5fb44dbac3b060b206e56c1947006324ee68a174d68b483ef8ca
- SHA512: cd7e52faa464df8aca7ccfa23a5f06248e1ad82bc8c9f1829aa1b51ff37b15973b8caaa68e914d837325b8d59427fda4f3cad82c50925e1c84e688324a2a155d
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.zip
- SIZE: 18441027 bytes
- MD5: f8e1d0cee4f2d9535a9529ed23ae3700
- SHA256: e06c1e2b1248cf881749833084b2bec93f7612676009190ff9bc89b8fd07c29f
- SHA512: 364dd927b496520d95a1b06c68e1a265015f4cab08bdf3efaa323d385e7bf075eae47f2e1db78a629db0f3c0c1ed24e086603ba21e2da02ac06dd3c8b716766e