Ruby Enterprise Edition против Ruby 1.9

Я планирую создать веб-сайт, который будет простой CMS, где пользователи будут отправлять и просматривать сообщения с видео, фотографиями и текстом.

Одним из решений, которое я хочу сделать, является выбор между Ruby Enterprise Edition и Ruby 1.9.

Вещи, которые меня волнуют по порядку:

  • Производительность и масштабируемость.
  • Совместимость с существующими проектами gems/plugins/open source.
  • Скорость разработки и развертывания (я буду развертывать на VPS).

Каково ваше предложение?

Ответ 1

REE из моего опыта имеет тенденцию бросать mallocs в нечетные места (вкладка вкладки в январе 2009 года в script/console - https://webrat.lighthouseapp.com/projects/10503/tickets/89-excessive-output-caused-by-and-only-by-running-webrat).

Ruby 1.9.1 имеет массивную ошибку в tempfile, которая взрывает стойку (август 2009 года присутствует в патчеле 243 - http://groups.google.com/group/rack-devel/browse_thread/thread/a2aab3a4720f34c4?pli=1). Кроме того, я не считаю, что Ruby 1.9.1 был правильно протестирован с Rails 2.3.4 (String exclusive или - https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3144-undefined-method-for-string-ror-234).

Честно говоря, это зависит от того, насколько хорошо вы реагируете на сюрпризы. Я использую старый патч-уровень 1.9.1 на сервере под управлением 2.3.3 и кроме патча в Net:: HTTP для работы с ActiveResource, он работает очень быстро.

Если вам не нравятся сюрпризы, придерживайтесь 1.8.7.

Обновление 10/10/2010

Ответ на мой вопрос сегодня недействителен, и Ruby EE и 1.9.2 - очень хорошие реализации Ruby!

Я не совсем уверен, какой из них я бы выбрал, вероятно, 1.9.2 - или продержаться, чтобы сказать, что работают фьюжн-парни, поскольку они работают над версией REE 1.9, но их 1.8.7 REE довольно солидно.

Ответ 2

Как заявлено Phusion, они не будут разрабатывать версию Ruby Enterprise Edition версии 1.9 и объявили о завершении жизни REE с окончанием срока службы MRI Ruby 1.8. Причины отсутствия разработки версии 1.9 -

  • Патч для копирования на запись недавно был проверен на Ruby 2.0.
  • Многие из патчей в Ruby Enterprise Edition просто не нужны в версии 1.9.
  • Мы хотим сосредоточить свои усилия на Phusion Passenger и других продуктах. Вместо того, чтобы делать много вещей плохо, мы хотим сделать несколько вещей, но делаем их очень хорошо.

Полную запись можно прочитать здесь.

Поэтому я рекомендую использовать доступную и стабильную версию Ruby 2.0.0 или предыдущей стабильной версии Ruby 1.9.3.

Ответ 3

Мое предложение - пойти на 1.9.2, если это возможно, потому что 1.9.2 намного быстрее REE и MRI 1.8.7. Однако имейте в виду, что 1.9.2, как и его MRI 1.8.7, не является полной оптимизированной версией, поэтому вы ожидаете увидеть больше RAM, съеденного по сравнению с REE. Если вы не смогли обновить до 1.9.2, я бы рекомендовал вам придерживаться REE.

Обновление: REE только что объединил все изменения с MRI 1.8.7-p334, так что это хорошо и жарко;)