代码之家  ›  专栏  ›  技术社区  ›  Sasha Chedygov

将JRuby用于Ruby web应用程序?值得吗?

  •  14
  • Sasha Chedygov  · 技术社区  · 17 年前

    背景:

    所以我听到了很多关于使用JRuby部署Ruby web应用程序的建议,不管您是否真的需要Java库。这有多真实?仅仅为了提高速度就值得使用Java实现吗?我这样做还会有什么好处吗?我会遇到什么问题吗?

    2 回复  |  直到 17 年前
        1
  •  24
  •   breandan    10 年前

    JRuby是最完整的ruby实现之一(还有很多其他的实现,比如IronRuby、Maglev、Rubinius、XRuby、YARV、MacRuby)。它是非常全面的,因此,除非您使用使用原生C代码的gems,否则您很有可能在兼容性方面做得很好。

    JRuby比实际的C实现快一点,但它支持实际的线程,而官方实现在获得它方面有点困难(它仍然使用 Green Threads ).使用JRuby中的Java线程是非常简单的,尽管它需要您将代码与Java结合起来(只需要一点时间) DI

    另一个好处是:运行时工具。Java,作为 站台 大量 一系列运行时工具可帮助您诊断问题和检查应用程序的状态(探查器、JConsole等)。

    Twitter 工程师们还提到Ruby虚拟机有点 难以成为长寿命进程的环境 ,而

    Ruby最近也有一点安全问题,这并没有影响JRuby的实现。

    另一方面,您的项目需要更多的工件(JVM、JRubyJAR等)。如果您使用的应用程序将长期处于活动状态,并且希望获得更好的运行时支持,那么JRuby将是一个不错的选择。否则,您可以安全地等待,直到您需要这些东西来实际移动(很可能会顺利进行)。

        2
  •  6
  •   Koen.    12 年前

    使用JRuby的原因:

    1. 受限环境(您的计算机安装了Java而不是ruby,并且您没有root用户)

    从你描述的情况来看,你没有任何上述原因。

    好消息是,您可以从其中一个开始,然后根据需要转换。都是Ruby,Webrick和Mongrel gems都可以使用。

    如上所述,具有C扩展的ruby gems不能安装在JRuby下。如果ruby C扩展使用FFI,这种情况有望在将来改变。

    http://kenai.com/projects/ruby-ffi/pages/Home

    http://isitjruby.com/