У меня есть приложение Rails 3.2.2, которое я ищу для запуска с использованием JRuby 1.6.7 (режим 1.9.2).
У меня есть пример приложения, работающего в MRI ruby 1.9.3, и типичный запрос возвращается в ~ 40 мс: Завершено 200 OK в 36ms (Просмотров: 27.5ms | ActiveRecord: 8.2ms)
В JRuby с использованием того же запроса в зависимости от страницы в любом месте от 3 до 20 раз медленнее. Для той же операции, что и выше, она занимает ~ 180 мс: Завершено 200 OK в 180 мс (Просмотров: 153.0ms | ActiveRecord: 24.0ms)
Это обычная разница в производительности? Я читал, что JRuby примерно равен скорости с помощью МРТ. Результаты сохраняются на моем Mac и сервере Windows (где, к сожалению, его нужно будет запустить). Упаковка его с Warbler работает под Tomcat так же медленно.
Вышеуказанное время относится к базовому устройству rails, созданному для тестирования JRuby. В более сложном приложении время еще дальше. В этом приложении на некоторых страницах запускается еще один код ruby. Похоже, что чем больше страница зависит от рубина, тем больше разница в производительности, которую я наблюдаю. Я не настраивал JRuby, так как не знаю, с чего начать.
Итак, мои вопросы: это нормально? Что я могу сделать, чтобы настроить JRuby?