Ruby企业版与Ruby 1.9的比较

11

我计划建立一个简单的CMS网站,用户可以在其中发布和查看包含视频、照片和文本的帖子。

我想做出的一个决定是选择Ruby Enterprise Edition 还是 Ruby 1.9。

以下是我关心的事项的优先级:

  1. 性能和可伸缩性。
  2. 与现有gem/插件/开源项目的兼容性。
  3. 开发和部署速度(我将在VPS上进行部署)。

你有什么建议?


一个类似的线程 http://stackoverflow.com/questions/6106907/why-is-mri-the-mainstream-ruby-interpreter-while-it-performs-the-worst - Özgür
3个回答

15

根据我的经验,REE倾向于在奇怪的地方抛出mallocs(例如2009年1月脚本/控制台中的tab补全 - https://webrat.lighthouseapp.com/projects/10503/tickets/89-excessive-output-caused-by-and-only-by-running-webrat)。

Ruby 1.9.1存在一个大缺陷,在tempfile中会导致Rack崩溃(2009年8月243补丁级别存在此问题 - http://groups.google.com/group/rack-devel/browse_thread/thread/a2aab3a4720f34c4?pli=1)。此外,我认为Ruby 1.9.1与Rails 2.3.4配合使用未经充分测试(String exclusive or - https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3144-undefined-method-for-string-ror-234)。

老实说,这取决于您对惊喜的反应速度。我在运行2.3.3的服务器上使用1.9.1的旧patch级别,除了Net :: HTTP中的一个补丁以与ActiveResource一起使用外,它运行得非常快。

如果您不喜欢惊喜,请坚持使用1.8.7。

更新于2010年10月10日

现在,对我的问题的答案已经失效,Ruby EE和1.9.2都是非常好的Ruby实现!

我不太确定我会选择哪个版本,可能是1.9.2版本,或者等待Phusion的团队推出他们正在开发的1.9版本,因为他们正在开发REE的1.9版本 - 不过他们的1.8.7 REE已经非常稳定了。


7
据Phusion公司表示,他们将不会开发Ruby Enterprise Edition的1.9版本,并宣布随着MRI Ruby 1.8的End-Of-Life,REE也将结束生命周期。不开发1.9版本的原因如下:
  • 一个写时复制的补丁最近已经被纳入Ruby 2.0。
  • Ruby Enterprise Edition中的许多补丁在1.9中根本不需要。
  • 我们希望把精力集中在Phusion Passenger和其他产品上。我们想要做好几件事情,而不是做很多东西但都做得不好。
完整的文章可以在这里阅读。
因此,我建议使用目前可用且稳定的Ruby 2.0.0或之前的稳定版本Ruby 1.9.3。

1

我的建议是尽可能选择1.9.2,因为1.9.2比REE和MRI 1.8.7快得多。但请记住,与REE相比,1.9.2像其MRI 1.8.7一样不是完全优化的版本,因此您会看到更多的RAM被占用。如果您还不能升级到1.9.2,我建议您坚持使用REE。

更新:REE刚刚合并了来自MRI 1.8.7-p334的所有更改,所以它很好用;)


2
"1.9.2比REE和MRI 1.8.7快得多", 来源在哪里?最近我将我的两个应用从REE迁移到了1.9.2,响应时间有所提高。 - gertas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接