我在寻找尝试出它的和继续在轨道上。我有麻烦找到的信息在什么差别独立轨道和红宝石上轨道。

有什么分歧,我需要看出来的?

有帮助吗?

解决方案

它是红宝石实施上运行的一个JVM而麦特兹的红宝石是一C的实现。

关键功能要注意的是:

  1. 它运行Java VM的,它是编或解释下到Java字节的代码。
  2. 它可以融入Java代码。如果你有Java类库(.罐子的),可以参考和使用他们从内的红宝石码与它.在其他方向,你还可以呼吁独立代码从内Java。它还可以使用虚拟服务器和应用程序服务器的功能。
  3. 它通常是主办的内Java应用程序服务器,例如太阳光下或甚至Tomcat网络服务器。
  4. 虽然你不能使用当地的红宝石宝石,它有独立的实现,为最受欢迎的红宝库。

还有其他的差异,它们列在独立wiki:

其他提示

我很惊讶在这个问题的所有答案中都缺少一个关键的东西,与 GIL 有关。

你应该关心的主要区别是什么。在Web应用程序中,例如使用Rails构建的应用程序是真正的并发(“Global Interpreter Lock”免费)。当使用JRuby运行两个线程(例如,提供2个用户请求)时,它们能够在单个进程内并发运行,而在MRI中,GIL(即使使用1.9的本机线程)也可以避免并行执行Ruby代码。

对于应用程序开发人员来说,这是考虑JRuby时要记住的第一件事,因为它真的很闪耀 config.threadsafe!但要求你确保你的代码(和你的宝石代码)要“真实地”线程安全的。

我可能错了,但我认为你可以用一种你不能用正常RoR做的方式打包JRuby on Rails应用程序 - 看看Mingle或类似的东西。可以在不丢弃裤子/打开komono的情况下进行销售。

那就是说,我对RoR包装不够熟悉,所以不要抱我这样做:)

大多数情况应该是一样的。在jRoR中,您可以访问RoR中不具备的内容。通常它主要是部署问题。

但是,如果您的RoR应用程序使用的本机库没有在JVM上运行的等效项,那可能会很麻烦。但是大多数lib都有非本机版本(至少是我遇到的流行版本)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top