我计划建立一个网站,它将是一个简单的 CMS,用户可以在其中提交和查看包含视频、照片和文本的帖子。
我想做的一个决定是在 Ruby Enterprise Edition 和 Ruby 1.9 之间进行选择。
我关心的事情是:
- 性能和可扩展性。
- 与现有 gems/plugins/开源项目的兼容性。
- 开发和部署速度(我将在 VPS 上部署)。
你的建议是什么?
我计划建立一个网站,它将是一个简单的 CMS,用户可以在其中提交和查看包含视频、照片和文本的帖子。
我想做的一个决定是在 Ruby Enterprise Edition 和 Ruby 1.9 之间进行选择。
我关心的事情是:
你的建议是什么?
根据我的经验,REE 倾向于在奇怪的地方抛出 malloc(2009 年 1 月脚本/控制台中的选项卡完成 - https://webrat.lighthouseapp.com/projects/10503/tickets/89-excessive-output-caused-by-and -only-by-running-webrat)。
Ruby 1.9.1 在临时文件中有一个巨大的错误,它会炸毁 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 进行了正确测试(字符串独占或 - https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3144 -undefined-method-for-string-ror-234)。
老实说,这取决于你对意外的反应如何。我在运行 2.3.3 的服务器上使用 1.9.1 的旧补丁级别,而不是 Net::HTTP 中的补丁与 ActiveResource 一起使用,它运行得非常快。
如果您不喜欢惊喜,请坚持使用 1.8.7。
2010 年 10 月 10 日更新
现在我的问题的答案是无效的,Ruby EE 和 1.9.2 都是非常好的 Ruby 实现!
我不太确定我会选择哪一个,可能是 1.9.2 - 或者坚持说 phusion 家伙正在做什么,因为他们正在开发 1.9 版本的 REE - 但是,他们的 1.8.7 REE 很漂亮坚硬的。
正如 Phusion 所说,他们不会开发 Ruby 企业版的 1.9 版本,并宣布 REE 的生命周期结束和 MRI Ruby 1.8 的生命周期结束。不开发 1.9 版本的原因是
- 最近在 Ruby 2.0 中加入了一个写时复制补丁。
- Ruby 企业版中的许多补丁在 1.9 中根本不需要。
- 我们希望将精力集中在 Phusion Passenger 和其他产品上。我们不想做很多 > 糟糕的事情,而是想做一些事情,但要做得非常非常好。
完整的帖子可以在这里阅读。
因此,我建议使用当前可用且稳定的 Ruby 2.0.0 版本或之前的稳定版本 Ruby 1.9.3。
我的建议是尽可能选择 1.9.2,因为 1.9.2 比 REE 和 MRI 1.8.7 快得多。但是请记住,1.9.2 和它的 MRI 1.8.7 一样不是一个完全优化的版本,所以与 REE 相比,你会看到更多的 RAM 被吃掉。如果您还不能升级到 1.9.2,我建议您坚持使用 REE。
更新:REE 刚刚合并了 MRI 1.8.7-p334 的所有更改,所以它又好又热;)