JRuby有多可靠?

JRuby有多可靠?,ruby,jruby,jrubyonrails,Ruby,Jruby,Jrubyonrails,我有兴趣在我们的办公室推广JRuby作为Rails应用程序的托管平台 但它有多可靠 其性能是否优于MRI 1.8.7 JRuby 1.5声明它与Ruby 1.8.7 100%兼容,这是否意味着JRuby可以运行任何Ruby/Rails代码?是的,JRuby是可靠的!Oracle将JRuby用于Oracle mix(),Sun将其用于Kenai(),它将成为java.net的下一个基础(来自Kenai站点:“正在进行将java.net域迁移到Kenai基础设施的工作”) 您可以运行几乎所有的代码,

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

但它有多可靠

其性能是否优于MRI 1.8.7


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

是的,JRuby是可靠的!Oracle将JRuby用于Oracle mix(),Sun将其用于Kenai(),它将成为java.net的下一个基础(来自Kenai站点:“正在进行将java.net域迁移到Kenai基础设施的工作”)

您可以运行几乎所有的代码,一些gems使用本机C扩展,在JRuby中有对它的基本支持,但是是的……rails可以正常工作

你可以在像Tomcat或JBoss这样的应用服务器上部署Rails应用程序,使用Warbler将Rails应用程序封装在一个.war文件中,这真是太棒了


更新:你可以在这里看到很多基准测试:

JRuby rocks!!原因很简单,就是它的可移植性和与Java库的集成。我个人将它与Netbeans一起使用,它附带的快速调试器似乎非常方便。另外,您不希望看到本机生成错误并对其进行处理。所有这些为JRuby下载的gem在任何平台上都能100%工作。使用JRuby,您只需简单地引入Java平台独立性的优势

此外,JRuby使用本机线程,它使用OS线程而不是CRuby中的绿色线程(我认为最新版本的情况并非如此)


简而言之,去JRuby

我现在正在做大量的jruby工作,我可以告诉你,在jruby解释器下,rails肯定是一个可行的选择。我非常高兴,在我的例子中,我不得不使用许多本机Java库,所以jRuby是Java代码的一个非常棒的包装器。我会说,我遇到了一些技术挑战,有些已经解决,有些还没有解决

  • 单元测试:先对jvm进行后台处理,然后再对rails进行后台处理需要更长的时间,因此您的测试需要更长的时间来运行—解决方案,可能类似于保持jvm运行的NALGUN
  • 部署:我还没有让柳莺为我工作,我喜欢tomcat。这对我们来说是一个重大问题
  • 选择您的库,虽然一些c扩展可以工作,但它们并非都具有相同的兼容性
    如果您感兴趣,我会高度推荐《jruby测试版》这本书,它来自windows的Pragmantic程序员,我发现它在处理大量数据时比MRI更稳定。windows上仍然存在一些bug,但它们实际上是可以解决的。推荐。

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

    这并不意味着它将成功运行所有代码。例如,尽管如此,bioruby目前仍在jruby上调用fork。(不过,这更像是bioruby中的一个bug,而不是jruby中的bug)


    不过,我不会说这种行为“不可靠”。它是故障安全的,就像一个。

    一旦JVM被后台运行,性能大约相当于1.9.1,通过调整编译器,速度可能会更快:但是您总是可以使用rvm对自己的系统和需求进行基准测试关于Grails的一个恼人的事情是,启动Grails需要很多时间(是否运行服务器、生成控制器和模型、运行测试)。JRuby也有同样的问题吗?是的-这就是我在回答中的#1列表项中所指的“假脱机JVM”。问题不是grails或JRuby,而是必须加载java虚拟机。不过,有一些解决方案,请参阅nailgun:您可以使用spork进行单元测试以加快速度(和nailgun)