我正在试用JRuby和JRuby on Rails。我无法找到关于JRuby on Rails和Ruby on Rails有什么区别的信息。JRuby on Rails与Ruby on Rails有什么区别?
我需要留意哪些差异?
我正在试用JRuby和JRuby on Rails。我无法找到关于JRuby on Rails和Ruby on Rails有什么区别的信息。JRuby on Rails与Ruby on Rails有什么区别?
我需要留意哪些差异?
JRuby是在JVM上运行,而马茨的红宝石是一个C语言实现的Ruby实现。
需要注意的主要特点是:
有它们在JRuby的维基列出的其他差异:
大多数情况下它应该是一样的。在jRoR中,您可以访问RoR中不会有的东西。通常它主要是一个部署问题。
但是,如果你的RoR应用程序使用不具有运行在JVM上等效本机库,这可以是一个痛苦。然而,大多数库都有一个非本地版本(至少是我遇到的流行版本)。
我可能是错的,但我认为你可以打包在Rails中的JRuby应用程序的方式,你不能使用正常的RoR - 看看Mingle或类似的。使它可以销售,而不会掉下你的裤子/打开komono。
这就是说,我不是回报率足够包装熟悉,所以不要抱着我吧:)
我很惊讶有一个关键的东西都在这个问题的答案失踪,涉及到GIL 。
你应该关心的主要区别是esp。在诸如使用Rails构建的Web应用程序中,是真并发性(“Global Interpreter Lock”免费)。当使用JRuby运行两个线程(例如,提供两个用户请求)时,它们能够在单个进程内同时运行,而在MRI中则有GIL(即使是1.9的本地线程),可以避免并行执行Ruby代码。
对于应用程序开发人员,在考虑JRuby时首先要记住的是,它确实与config.threadsafe!
一起闪耀,但要求您确保代码(和您的宝石代码)“真正”是线程安全的。
谢谢,这回答我所寻找的一切。:) – epochwolf 2008-09-30 13:58:59
哦,它的运行速度比1.9慢 – rogerdpack 2010-05-24 21:52:49