写点什么

Ruby Enterprise Edition 新版本切换至 Ruby 1.8.7

  • 2009-10-15
  • 本文字数:1101 字

    阅读完需:约 4 分钟

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

2009-10-15 04:411583
用户头像

发布了 135 篇内容, 共 60.6 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

Flink检查点存在的性能影响-16

小知识点

scala 大数据 flink

百度被绿了?

程序员生活志

百度 互联网 头条

架构师训练营0期 第十二周作业

WW

指针变量的传值和传址

C语言与CPP编程

c++ 指针 C语言

数据分析之伯克森谬误:颜值和性格真成反比吗

KAMI

人生 数据分析 数据

Docker 安装和简单使用

枫林

Docker

oeasy教您玩转linux010203显示logo

o

联盟:互联网时代的人才变革

非著名程序员

互联网 个人成长 人才 人才发展 突破圈层,个体崛起

Pod安装神策SDK报错Remote branch v2.1.3 not found in upstream origin

凌宇之蓝

ios 小程序flutter, 跨平台 CocoaPods pod React Native

C语言与C++常见面试题

C语言与CPP编程

c++ 面试 C语言

在Rust里面嵌入python代码

lipi

Python rust

缓冲区溢出

C语言与CPP编程

c++ C语言 缓冲区 堆栈溢出

我们一起学程序-五子棋

叫练

Java 多线程 游戏 websocket

深挖 Redis 6.0 源码—— SDS

yanglbme

redis 源码 源码分析

面试官问:Spring Boot中Tomcat是怎么启动的

Java小咖秀

tomcat 面试 springboot

mPaas 厂商push不通排查指南

阿里云金融线TAM SRE专家服务团队

android push

Zeppelin SDK :Flink 平台建设的基石

Apache Flink

flink

Docker -快速安装Elasticsearch

枫林

最通俗易懂的 Redis 架构模式详解

哈喽沃德先生

redis 架构模式 redis集群 redis哨兵 redis主从

关于MySQL参数,这些你要知道

Simon

MySQL 参数

C/C++函数指针与指针函数

C语言与CPP编程

c++ C语言 函数指针

你真的了解 Base64 吗

hepingfly

Java base64 编码

终端传感了解吗?18个知识点为你扫盲

华为云开发者联盟

IoT 信息化 传感器 传输协议 无线传输器

AtmoicXXX与AtmoicXXXArray源码分析

Darren

源码 内存布局 CAS java 并发 AtmoicXXX

微服务下数据一致性的几种实现方式

xcbeyond

微服务 BASE理论 数据一致性

再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

YourBatman

Jackson Fastjson 安全漏洞 CVE-2020-24616

Elasticsearch初步认识

枫林

Java elasticsearch ES

闲聊胡扯

C语言与CPP编程

随笔杂谈

浮点数比较的精度问题

C语言与CPP编程

c c++

甲方日常 7

句子

工作 随笔杂谈 日常

【高并发】要想学好并发编程,关键是要理解这三个核心问题

冰河

写作 多线程 高并发 同步 分工

Ruby Enterprise Edition新版本切换至Ruby 1.8.7_Ruby_Mirko Stocker_InfoQ精选文章