Ruby性能

Ruby性能,ruby,performance,ruby-1.9,Ruby,Performance,Ruby 1.9,我非常热衷于开发我的第一个Ruby应用程序,因为我的公司终于在内部批准了它的使用 在我读到的关于Ruby直到v1.8的所有文章中,从来没有任何关于性能的正面评论,但我对1.9版的内容却一无所知。我看到的最后一个数字是1.8,它的速度比外面的任何东西都要慢,所以我希望这能在1.9中得到解决 性能有显著提高吗?使用Ruby应用程序是否可以做一些具体的事情(或者避免做一些事情)以保持尽可能好的性能?我实际上听说了JVM实现JRuby的一些非常好的性能方面的事情。完全是轶事,但也许值得研究 另请参见目前

我非常热衷于开发我的第一个Ruby应用程序,因为我的公司终于在内部批准了它的使用

在我读到的关于Ruby直到v1.8的所有文章中,从来没有任何关于性能的正面评论,但我对1.9版的内容却一无所知。我看到的最后一个数字是1.8,它的速度比外面的任何东西都要慢,所以我希望这能在1.9中得到解决


性能有显著提高吗?使用Ruby应用程序是否可以做一些具体的事情(或者避免做一些事情)以保持尽可能好的性能?

我实际上听说了JVM实现JRuby的一些非常好的性能方面的事情。完全是轶事,但也许值得研究


另请参见

目前有一些基准是1.8比1.9。总的来说,1.9在大多数情况下看起来要快得多。

Matz ruby 1.8.6在性能方面要慢得多,而1.9和JRuby在加速方面做了很多工作。但是性能并不会阻止您在web应用程序中执行任何您想要的操作。有许多大型RubyonRails站点可以很好地使用“较慢的解释”语言。当你开始扩展web应用程序时,除了编写语言的速度之外,还有许多更紧迫的性能问题。

如果可伸缩性和性能对你来说真的很重要,你也可以查看。它是Ruby解释器的一个自定义实现,应该在内存分配和垃圾收集方面做得更好。我没有看到任何客观的指标直接将它与JRuby进行比较,但我听到的所有轶事证据都非常好

这是由同一家公司创建的,如果您决定不采用JRuby路线,您肯定应该将其作为rails部署解决方案进行检查。

查看Addison Wesley Professional的“编写高效Ruby代码”:

在这篇短文中,我发现了一些非常有用和有趣的见解。如果你报名参加10天免费试用,你可以免费阅读。(共50页,试用版可让您(AFAIR)浏览100页。)


我不是一名Ruby程序员,但我最近一直密切参与JRuby部署,因此可以得出一些结论。不要对JRuby的性能抱有太多期望。在解释模式下,它似乎在C Ruby的范围内。JIT模式可能更快,但仅在理论上如此。在实践中,我们在Glassfish上尝试了JIT模式,以便在中型服务器(双核、8GB RAM)上使用大小适中的Rails应用程序。事实上,JITting花费了太多的时间,服务器需要20-30分钟才能响应第一个请求。内存的使用是天文数字,分析不起作用,因为整个系统在附加了分析程序的情况下停止运行


一句话:JRuby有它的优点(多线程、坚实的平台、易于Java集成),但考虑到解释模式是唯一在实践中对我们有效的模式,在性能方面,它可能并不比C Ruby好。

我支持使用Passenger的建议——它使Rails应用程序的部署和管理变得微不足道