1
163
JRuby是运行在JVM上的Ruby实现,而Matz的Ruby是C实现。 需要注意的主要特点是:
|
2
62
我很惊讶在这个问题的所有答案中都缺少一个关键的东西,与 吉尔 . 真正并发 (“全局解释器锁”空闲)。当使用JRuby运行两个线程(例如,服务2个用户请求)时,它们能够在单个进程内并发运行,而在MRI中,GIL(即使使用1.9的本机线程)可以避免并行执行Ruby代码。
对于应用程序开发人员来说,在考虑JRuby时首先要记住这一点,因为JRuby在很多方面都非常出色
|
3
7
我可能错了,但我认为你可以用一种普通RoR无法实现的方式来打包JRuby on Rails应用程序——看看Mingle或类似的软件。可以在不脱裤子/不打开komono的情况下销售。 也就是说,我对RoR包装还不够熟悉,所以不要强迫我:) |
4
4
大多数情况下,它的工作原理应该是一样的。在jRoR中,您可以访问RoR中没有的内容。通常这主要是一个部署问题。 但是,如果您的RoR应用程序使用的本机库没有在JVM上运行的等效库,那么这可能是一个难题。然而,大多数lib都有非本机版本(至少是我遇到的流行版本)。 |
5
2
这里已经有了一些很好的答案。 eebbesen已经涵盖了基础知识,kares(他自己!)告诉我们JRuby没有GIL。 我将从更实际的角度补充,我已经在RubyonRails上启动了应用程序,然后出于性能原因迁移到JRuby。 有两个主要的性能优势:JRuby在某些情况下比Ruby快,还有两个,缺少kares提到的全局解释器锁,这使我能够进行多线程处理,虽然这很棘手,但却带来了几个数量级的性能优势。
|
Lakota Lefler · 带有RackFilter和资产的轨道 11 年前 |