Szukam wypróbować JRuby i JRuby na Rails. Mam problem ze znalezieniem informacji na temat różnicy między JRuby na Railsach i Ruby on Rails.JRuby on Rails vs. Ruby on Rails, co za różnica?
Na jakie różnice muszę zwrócić uwagę?
Szukam wypróbować JRuby i JRuby na Rails. Mam problem ze znalezieniem informacji na temat różnicy między JRuby na Railsach i Ruby on Rails.JRuby on Rails vs. Ruby on Rails, co za różnica?
Na jakie różnice muszę zwrócić uwagę?
JRuby to implementacja ruby działająca na JVM, natomiast Ruby Matza to implementacja języka C.
Najważniejsze cechy zwrócić uwagę to:
Są też inne różnice, które są wymienione na wiki jruby:
głównie powinno działać tak samo. w jRoR masz dostęp do rzeczy, których nie miałbyś w RoR. Zwykle jest to głównie problem związany z wdrożeniem.
Jeśli jednak twoja aplikacja RoR używa natywnych bibliotek, które nie mają odpowiednika, który działa na maszynie JVM, może to być uciążliwe. Jednak większość bibliotek ma dostępną wersję inną niż natywna (przynajmniej te popularne, z którymi się zetknąłem).
Może się mylę, ale myślę, że można zapakować do JRuby on Rails aplikacja w sposób, którego nie możesz zrobić z normalnym RoR - spójrz na Mingle lub podobne. Umożliwia sprzedaż bez zrzucania spodni/otwierania komono.
To powiedziawszy, nie jestem na tyle obeznany z opakowaniem RoR, więc nie trzymaj mnie do niego :)
Masz absolutną rację w tym , chociaż będziesz potrzebował czegoś takiego jak klejnot Rawr lub Roir, aby to zrobić całkowicie (ostatnio użyłem Mingle, miałam niezakłócone pliki Ruby ...). –
Dziwię jest kluczowym Brakuje we wszystkich odpowiedzi na to pytanie, związane z GIL .
Najważniejszą różnicą, na którą powinieneś zwrócić uwagę. w aplikacjach internetowych, takich jak te utworzone za pomocą Railsów, jest true concurrency ("Global Interpreter Lock" za darmo). Gdy dwa wątki są uruchomione (na przykład obsługują 2 żądania użytkownika) z JRuby, mogą działać równocześnie w jednym procesie, podczas gdy w MRI istnieje GIL (nawet z natywnymi wątkami 1.9), który unika równoległego wykonywania kodu Ruby.
Dla deweloperów aplikacji jest to pierwsza rzecz, o której należy pamiętać biorąc pod uwagę JRuby, ponieważ naprawdę świeci się z config.threadsafe!
, ale wymaga upewnienia się, że twój kod (i kod klejnotów) jest "prawdziwie" bezpieczny dla wątków.
Dziękuję, że odpowiada prawie wszystko, czego szukałem.:) – epochwolf
oh, i działa nieco wolniej niż 1,9 – rogerdpack
Ponadto, JRuby powinien mieć rzeczywiste natywne wątki systemu operacyjnego, jak mi powiedziano ... –