InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Ruby Enterprise Edition新版本切换至Ruby 1.8.7

作者 Mirko Stocker 译者 丁雪丰 发布于 2009年10月15日

领域
运维 & 基础架构,
过程 & 实践,
架构 & 设计,
语言 & 开发
主题
Ruby on Rails ,
Ruby ,
发布 ,
版本控制 ,
动态语言 ,
性能调优 ,
配置管理 ,
语言 ,
编程 ,
性能和可伸缩性

Phusion发布了新的Ruby Enterprise Edition,版本号为1.8.7-20090928。之前的版本都基于Ruby 1.8.6,该版本开始基于Ruby 1.8.7。Ruby 1.8.7发布已经有段时间了,为什么现在才切换到1.8.7呢?Phusion在发布声明中解释了这个问题:

我们起先并不愿意切换到1.8.7:很多人报告说在引入1.8.7后遇到了各种不兼容的情况,而且其他几个Ruby实现都抵制 1.8.7。然而,现在的情况不同了。Rails 3.0将不再支持Ruby 1.8.7之前的版本,JRuby最近也决定支持1.8.7,并且OS X Snow Leopard和所有Linux发行版都自带了1.8.7。我们已经收到了来自社区的很多请求,希望能有一个基于1.8.7的版本。

本次发布还有一些其他的消息——新版本集成了Brent Roman的MBARI补丁,它能改善性能、减少内存开销。为了提升多线程速度,该版本中还包含了一个作为可选实验特性的补丁(作者是Joe Damato和Aman Gupta)

这些补丁究竟起了多少改善作用呢?Twitter对该版本做了测试,正如Evan Weaver报告的那样,它在吞吐量上带来了显著的提升。Evan还补充道“比起-O2或-O3(针对速度优化),用-Os(针对大小优化)编译的Ruby更快一些。Phusion的Hongli指出Ruby的指令局部性很糟,主要是靠将指令塞进指令缓存中来改善性能的”。

InfoQ向Ruby Enterprise Edition团队咨询了在升级到新版本时是否存在一些问题。Phusion的Ninh Bui回答道:

呃,除了从1.8.6到1.8.7的兼容性问题,tcmalloc——我们使用的内存分配器——在Snow Leopard上还无法正常工作。

Ninh的同事Hongli还补充说:

目前Xen的支持方面还存在一些问题:有报告说REE在Xen中运行时输出了很多(无害的)警告信息。我们计划在以后的版本中加入Xen特有的编译标志来解决这个问题。至于1.8.6和1.8.7的不兼容性,这是由语义变化造成的,例如,一些方法现在不再返回Array,改为返回 Enumerable;一些标准库类有细微变化,等等。

社区已经接受了这些变化,因此我并不认为会有不兼容的问题。

您可在www.rubyenterpriseedition.com获取到Ruby Enterprise Edition的新版本。

查看英文原文:New Ruby Enterprise Edition Release Switches to Ruby 1.8.7

译者介绍:丁雪丰,网名DigitalSonic,满江红开放技术研究组织核心成员,Spring Framework 2.0 & 2.5文档翻译项目负责人,也参与了Hibernate、Seam等多份文档的翻译及校对工作。平时积极投身开源项目,是著名SFTP/SCP软件WinSCP的简体中文汉化者。参与翻译及编著的书籍有《Spring攻略》《JRuby实战》等。InfoQ中文站内容团队,尤其是架构、SOA和Ruby社区需要您的参与,有意者请邮件至editors【AT】cn.infoq.com

译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。

ruby的性能问题随着大家的努力可以别解决 发表人 withyou gakaki 发表于
  1. 返回顶部

    ruby的性能问题随着大家的努力可以别解决

    发表人 withyou gakaki

    但是应用呢..应用还是太少,继续努力赶上PHP,ruby还是不错