Насколько надежен JRuby?

Я заинтересован в продвижении JRuby в нашем офисе в качестве платформы для размещения приложений Rails.

Но насколько это надежно?

Его производительность лучше, чем МРТ 1.8.7?

JRuby 1.5 заявляет, что он на 100% совместим с Ruby 1.8.7, означает ли это, что JRuby может запускать любой код Ruby / Rails?


person Chiron    schedule 18.08.2010    source источник


Ответы (5)


Я выполняю много работы с jruby прямо сейчас и могу сказать вам, что rails, безусловно, является жизнеспособным вариантом для интерпретатора jruby. Я был очень доволен, и в моем случае мне пришлось использовать множество собственных библиотек Java, поэтому jRuby - просто потрясающая оболочка для этого java-кода. Я скажу, что у меня были некоторые технические проблемы, некоторые из которых решены, а некоторые еще нет.

  1. модульное тестирование: спулинг jvm, а затем намотка рельсов занимает гораздо больше времени, поэтому ваши тесты требуют больше времени для запуска - решение, потенциально что-то вроде гвоздя, которое поддерживает работу jvm
  2. развертывание: у меня не было певчих птиц, которые бы работали на меня, с моим вкусом кота. для нас это серьезная проблема.
  3. выберите свои библиотеки, хотя некоторые расширения c работают, не все они одинаково совместимы.

если вам интересно, я настоятельно рекомендую книгу jruby в бета-версии от программистов Pragmantic на http://pragprog.com

person Jed Schneider    schedule 18.08.2010
comment
после буферизации JVM производительность будет примерно равна 1.9.1 rubyinside.com/ с потенциально большей скоростью, настроив компилятор: kenai.com/projects/jruby/pages/PerformanceTuning, но вы всегда можете протестировать свои собственные системы и потребности с помощью rvm rvm.beginrescueend.com/set/benchmark. - person Jed Schneider; 18.08.2010
comment
Одна неприятная особенность Grails заключается в том, что на запуск требуется много времени (запуск сервера, создание контроллеров и моделей, выполнение тестов). У JRuby такая же проблема? - person Chiron; 18.08.2010
comment
да - это то, что я называю «буферизацией JVM» в элементе списка №1 в моем ответе. проблема не в grails или jruby, а в необходимости загрузки виртуальной машины Java. есть решения, см. nailgun: martiansoftware.com/nailgun/index.html - person Jed Schneider; 19.08.2010
comment
вы можете использовать spork для модульного тестирования, чтобы ускорить процесс (и гвоздь) github.com/rdp/spork - person rogerdpack; 19.08.2010

Да, JRuby надежен! Oracle использует JRuby для смеси Oracle (http://mix.oracle.com/), Sun использовала его для Kenai (http://kenai.com), и это будет следующая база для java.net (от kenai site: «Продолжаются работы по переносу домена Java.net в инфраструктуру Kenai») !!

Вы можете запускать почти любой код, некоторые драгоценные камни используют собственное расширение C, а в JRuby есть примитивная поддержка для него, но да ... rails просто работает.

Вы можете развертывать приложения Rails на серверах приложений, таких как Tomcat или JBoss, с помощью Warbler, который помещает приложения Rails в файл .war, это довольно круто!

обновление: вы можете увидеть множество тестов здесь: http://programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/

person Luke    schedule 18.08.2010

JRuby крут !! Простая причина - его возможности переносимости и интеграция с библиотеками Java. Я лично использую его с Netbeans, и быстрый отладчик, который поставляется с ним, кажется очень удобным. Кроме того, вы не хотите видеть ошибки сборки и их обработку. Все эти драгоценные камни, которые вы загружаете для JRuby, работают на 100% на любой платформе. С JRuby вы просто получаете преимущества независимости платформы Java.

Более того, JRuby использует собственные потоки, которые используют потоки ОС вместо зеленых потоков, как в CRuby (хотя я думаю, что это не относится к последним версиям)

В Gist иди JRuby !!

person bragboy    schedule 18.08.2010

для Windows я обнаружил, что он намного стабильнее, чем МРТ, при работе с большими объемами данных. В окнах все еще есть некоторые ошибки, но на самом деле их можно обойти. Рекомендовать.

person rogerdpack    schedule 19.08.2010

Отказ от ответственности: я не использую jruby в своей повседневной работе - я просто экспериментировал с запуском существующего кода с помощью jruby.

Это не значит, что весь код будет успешно выполнен. Например, в настоящее время bioruby вызывает fork для jruby, хотя jruby на самом деле не поддерживает его . (Это скорее ошибка в bioruby, чем ошибка в jruby)

Но я бы не назвал такое поведение «ненадежным». Он безотказный, как самолет, который не оторвется от земли, тем более сбой.

person Andrew Grimm    schedule 19.08.2010