2

最近我的任务是处理一个相当大容量的 Rails api(高峰时每秒 5k 请求)。

在此之前,我将大部分编码工作都花在了 Java 应用程序上,我只是刚接触 Ruby/Rails 世界。

在家里,我一直在使用最新版本的 Ruby/Rails 来开发一些小型应用程序,并对语言和框架有所了解。

工作中的 Rails 应用程序是基于 Ruby 1.8.7 和 Rails 2.3.16 构建的,对我来说,它看起来很旧,与我在家使用的当前版本相比,缺少很多语法和新功能。我更喜欢新版本的 ruby​​ 和 rails。

我向我的团队提出想要升级到更新/最新版本,但我被告知新版本的 Ruby 还没有准备好“生产”。遗憾的是,由于我对 Ruby 缺乏经验,我无法对此提出异议。

任何好的文章/指标显示与较新的 Ruby/Rails 版本相同或更好的性能?就个人而言,我希望语言/框架的更新迭代具有更好的性能。

4

4 回答 4

4

您的团队可能的意思是:

我选择的 Linux 发行版仍然提供 Ruby 1.8.7(如果你不走运,还是 1.8.6)。由于他们还没有更新,我认为它还不稳定,但我没有这方面的硬数据。

但是,Linux 发行版的更改非常缓慢,而且它们很难确保所有软件都已更新以在较新的语言版本上正常工作。

话虽如此,Ruby 1.8很快就要报废了。现在,它只接收安全更新,但没有其他错误修复。2013 年 7 月,它将完全不受支持。仅此一项就足以让您尽快升级您的应用程序。

至于性能问题:对于大多数工作负载,Ruby 1.9.3 被认为比 Ruby 1.8.7 更快。Ruby 2.0 被认为比 1.9.3 快一点,但不如从 1.8.7 到 1.9 的变化。也就是说,一般性能建议很难。您应该自己检查这些陈述是否适用于您的应用程序。

于 2013-03-21T12:17:48.877 回答
1

目前还不太清楚你在问什么。您从性能开始,然后切换到“生产就绪”,然后再回到性能。由于您两次询问性能,我假设这就是您的意思。

Ruby 版本对性能没有影响。有些人声称并非如此,但实际上并没有任何基准测试证明 Ruby 版本对性能有任何影响。

性能有很大影响的是您使用的 Ruby 实现和实现的版本,以及您运行它的环境。例如,JRuby 比 MRI 快,JRuby 1.7 比 JRuby 1.6 快, 在 HotSpot 上运行的 JRuby 1.7 比在 J9 上运行的 JRuby 1.7 快,在 HotSpot 1.7 上运行的 JRuby 1.7 比在 HotSpot 1.6 上运行的 JRuby 1.7 快,在带有 C2 编译器的 HotSpot 1.7 上运行的 JRuby 1.7 比在 HotSpot 1.7 上运行的 JRuby 1.7 快与 C1 编译器,等等。

于 2013-03-21T13:21:55.190 回答
0

根据这个,对 Ruby 1.8.7 的支持将在 2013 年 6 月之后完全放弃。

所以最好升级到 Ruby 1.9+ 和 Rails 3+。查看这篇关于如何从 Rails 2 迁移到 Rails 3+ 的精彩文章

当前版本的 Rails 较旧,但由于您拥有 Rails 2 应用程序,这篇文章将帮助您发现 Rails 2 和 Rails 3+ 应用程序之间的差异。

还可以查看Railscasts以获取有关如何升级到 Rails 3、Rails 3 和 Rails 4 中引入的更改的精彩截屏视频

于 2013-03-22T08:59:09.857 回答