JRuby的可靠性如何?

时间:2010-08-18 18:37:23

标签: ruby jruby jrubyonrails

我有兴趣在办公室推广JRuby作为托管Rails应用程序的平台。

但它有多可靠?

它的性能是否优于MRI 1.8.7?

JRuby 1.5声称它与Ruby 1.8.7 100%兼容,这是否意味着JRuby可以运行任何 Ruby / Rails代码?

5 个答案:

答案 0 :(得分:4)

是的,JRuby很可靠! Oracle使用JRuby for Oracle mix(http://mix.oracle.com/),Sun将其用于Kenai(http://kenai.com),它将成为java.net的下一个基础(来自kenai网站:“工作正在进行中用于将Java.net域迁移到Kenai基础架构“)!!

你可以运行几乎每一个代码,一些宝石使用本机C扩展,而在JRuby中有一个原始的支持,但是...轨道只是工作。

你可以在像Tomcat或JBoss这样的应用服务器中使用Warbler部署Rails应用程序,将Rails应用程序包装在.war文件中,这非常棒!

更新:你可以在这里看到很多基准:http://programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/

答案 1 :(得分:2)

JRuby摇滚!简单的原因是它的可移植性和Java库的集成。我个人将它与Netbeans一起使用,随之而来的快速调试器似乎非常方便。另外,您不希望看到本机构建错误并处理它们。您为JRuby下载的所有这些宝石都可以在任何平台上100%运行。使用JRuby,您只需带来Java平台独立性的优势。

此外,JRuby使用本机线程,它使用操作系统线程而不是CRuby中的绿色线程(我认为不是最新版本的情况)

在Gist中,去JRuby !!

答案 2 :(得分:2)

我现在正在做很多非常繁琐的工作,并且可以告诉你,在jruby解释器下,rails肯定是一个可行的选择。我一直很高兴,在我的情况下必须使用许多本机Java库,所以jRuby就是这个java代码的一个很棒的包装器。我会说我遇到了一些技术挑战,其中一些尚未解决,有些尚未解决。

  1. 单元测试:将jvm假脱机然后假脱机轨道需要更长的时间,因此你的测试需要更长的时间才能运行 - 解决方案,可能就像钉枪一样让jvm保持运行
  2. 部署:我没有让warbler为我工作,我的味道是tomcat。这对我们来说是一个重大问题。
  3. 选择你的库,而有些c扩展可以工作,它们并非都是兼容的。
  4. 如果你感兴趣的话,我会高度推荐来自语法程序员的试用版jruby book http://pragprog.com

答案 3 :(得分:0)

对于Windows,我发现在处理大量数据时,它比MRI要稳定得多。 Windows上仍然存在一些错误,但它们实际上是可以解决的。建议。

答案 4 :(得分:0)

免责声明:我在日常工作中不使用jruby - 我只是尝试使用jruby运行现有代码。

这并不意味着它将成功运行所有代码。例如,即使jruby doesn't really support it,bioruby目前在jruby上调用fork。 (这更像是bioruby中的一个错误而不是jruby中的错误)

我不会称这种行为“不可靠”。它是故障安全的,就像plane that would not get off the ground, much less crash