我正在試用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