Сведения о вопросе

Codeliver

03:21, 4th August, 2020

Теги

ruby   performance   ruby-1.9    

Ruby производительность

Просмотров: 437   Ответов: 7

Я очень хочу разработать свое первое приложение Ruby, так как моя компания, наконец, благословила его использование внутри.

Во всем, что я читал о Ruby до v1.8, никогда не было ничего положительного сказано о производительности, но я ничего не нашел о версии 1.9. Последние цифры, которые я видел о 1.8, были значительно медленнее, чем почти все там, поэтому я надеюсь, что это было рассмотрено в 1.9.

Значительно ли улучшилась производительность? Есть ли какие-то конкретные вещи, которые можно сделать с помощью Ruby приложений (или вещей, чтобы избежать), чтобы сохранить производительность на лучшем уровне?



  Сведения об ответе

nYU

10:56, 10th August, 2020

Есть некоторые ориентиры 1.8 против 1.9 на http://www.rubychan.de/share/yarv_speedups.html . В целом, похоже, что 1.9 в большинстве случаев намного быстрее.


  Сведения об ответе

ASSembler

23:26, 8th August, 2020

Если масштабируемость и производительность действительно важны для вас, вы также можете проверить Ruby Enterprise Edition . Это пользовательская реализация интерпретатора Ruby, которая должна быть намного лучше в отношении выделения памяти и сборки мусора. Я не видел никаких объективных показателей, сравнивающих его непосредственно с JRuby, но все анекдотические свидетельства, которые я слышал, были очень и очень хороши.

Это из той же компании, которая создала Passenger (aka mod_ _ 29) , который вы обязательно должны проверить как решение rails deployment, если вы решите не идти по маршруту JRuby.


  Сведения об ответе

dump

19:28, 19th August, 2020

Matz ruby 1.8.6 гораздо медленнее, когда речь заходит о производительности, а 1.9 и JRuby делают много, чтобы ускорить ее. Но производительность не такова, чтобы это помешало вам делать все, что вы хотите в веб-приложении. Есть много больших Ruby на Rails сайтах, которые прекрасно справляются с языком "slower interpreted". Когда вы начинаете масштабировать веб-приложения, возникает гораздо более острая проблема производительности, чем скорость языка, на котором вы пишете.


  Сведения об ответе

darknet

22:48, 26th August, 2020

Я действительно слышал очень хорошие вещи, связанные с реализацией JVM, JRuby. Совершенно анекдотический,но, возможно, стоит посмотреть.

Смотрите также http://en.wikipedia.org/wiki/JRuby#производительность


  Сведения об ответе

P_S_S

17:00, 15th August, 2020

Проверьте "Writing Efficient Ruby Code" от Addison Wesley Professional:

http://safari.oreilly.com/9780321540034

Я нашел некоторые очень полезные и интересные идеи в этой короткой работе. И если вы зарегистрируетесь на бесплатную 10-дневную пробную версию, вы можете прочитать ее бесплатно. (Это 50 страниц, и пробная версия дает вам (AFAIR) 100 просмотров страниц.)

https://ssl.safaribooksonline.com/promo


  Сведения об ответе

dumai

22:54, 19th August, 2020

Я не являюсь программистом Ruby, но в последнее время я довольно тесно связан с JRuby deployment и поэтому могу сделать некоторые выводы. Не ожидайте многого от производительности JRuby. В интерпретируемом режиме он, похоже, находится где-то в диапазоне C Ruby. Режим JIT может быть быстрее, но только в теории. На практике мы попробовали режим JIT на Glassfish для приличного размера приложения Rails на сервере среднего размера (dual core, 8GB RAM). И правда в том, что JITting занял так много времени, что серверу потребовалось 20-30 минуты, прежде чем он ответил на первый запрос. Использование памяти было астрономическим, профилирование не работало, потому что вся система скрежетала, чтобы остановиться с прикрепленным профилировщиком.

Итог: JRuby имеет свои достоинства (многопоточность, твердая платформа, легкая интеграция Java), но учитывая, что интерпретируемый режим является единственным режимом, который работал для нас на практике, можно ожидать, что он будет не лучше по производительности, чем C Ruby.


  Сведения об ответе

DO__IT

23:47, 12th August, 2020

Я бы поддержал рекомендацию использования Passenger - это делает deployment и управление Rails приложениями тривиальными


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться