Причины не компилировать

Получив проект Ruby, я скептически относился к решению использовать Ruby из-за производительности.

Я был рад обнаружить JRuby с его интеграцией с Java. Это значительно облегчило мне проект. И теперь я был еще более щекотан еще больше, чтобы обнаружить, что JRuby может быть скомпилирован в байт-код Java.

С эталонными показателями вот так:

fib (30) Ruby: 1,67 с

fib(30) JRuby interp (клиентская виртуальная машина): 3.93s

fib(30) JRuby interp (виртуальная машина сервера): от 2,28 до 2,08 с

fib (30) JRuby скомпилирован (клиентская виртуальная машина): от 1,89 до 1,79 с

fib (30) JRuby скомпилировано (серверная виртуальная машина): от 1,66 до 0,86 с

Теперь я очень взволнован нашим выбором JRuby здесь. Есть ли какие-либо недостатки или причины, по которым вы не скомпилировали бы для производственной версии?

2 ответа

Решение

Распределение и установка облегчили бы мне это решение: как системный администратор, я бы предпочел распространять только файл.JAR, который может работать на многих JRE, чем распределять работающий экземпляр JRuby (который отличается для разных ОС, для пример) и мой исходный код. Кроме того, вы уже продемонстрировали, что AOT-скомпилированный код работает быстрее, чем интерпретируемый /JIT, поэтому все больше причин распространять скомпилированную версию.

Ruby очень быстро развивается (если вы знакомы с его стилем).

Это не так быстро, чтобы бежать, но это обычно не большой минус. Это достаточно быстро для большинства рабочих нагрузок, даже для больших веб-сайтов.

Решение не должно быть основано на скорости выполнения - если у вас нет статистики, чтобы сказать, что люди, как ожидают, будут недовольны производительностью - но скорее простота развертывания.

Если развертывание приложений Ruby было достигнуто вашими предшественниками, то оставьте его Ruby.

Если развертывание в JVM проще, сделайте это.

Другие вопросы по тегам