Pull to refresh

Comments 50

ярв можно посадить на руби 1.8.*?
А смысл? Думаю очень сложно. В 1.9.1 синтаксических несовместимостей не так много (в основном новые фичи).
смысл в том чтобы решить проблемы совместимости со старыми гемами.
Я думаю более нормально решение авторам gem’ов исправить код — часто требуется переписать лишь пару строк.
Нет. Когда-то он был в виде патча на руби, но это было несколько лет назад.
Основная проблема нового руби это то, что гемов под него очень и очень мало (к слову: последние рельсы его держат.). Так что сейчас имеет смысл переползать разве что на REE.
Правда, как мне тут сказал знакомый админ с x86_64 у него плохо
UFO just landed and posted this here
UFO just landed and posted this here
а смысл?

" — 5% slowdown because of GC patches
— 25% speedup because of tcmalloc
— Net result: 20% speedup.

On 64-bit:
— 5% slowdown because of GC patches
— No tcmalloc available
— Net result: 5% slowdown."

— по той же ссылке.
UFO just landed and posted this here
А у меня и предыдущии версии отлично работали на 64.
Ну там не такие острые проблемы с совместимостью — просто никто не тестирует, ждут финальный релиз :).
См. статью в Википедии. По поводу точности — я там привёл и просто суммарное время. Прирост, если мерить «в лом» тоже неплохой — 4,12. Признаюсь сразу: «за что взял, за то и продаю», аргументировать этот метод не могу, его привёл сам автор сравнения в тестах.
Признаюсь сразу: «за что взял, за то и продаю», аргументировать этот метод не могу, его привёл сам автор сравнения в тестах.
вот-вот. Может быть и можно взять какие-то числа из первого графика и с помощью среднего геометрического получить второй, но мой невооружённый взгляд скорее говорит о том, что на втором графике показан прирост в разах относительно Ruby 1.8.7. Так что автор сих рисунков думал о чём-то отвелечённом, когда подписывал график. Буду рад если вы расскажете, при чём же там среднее геометрическое на самом деле :)
На самом деле, из текста статьи понятно, при чём там среднее геометрическое, вот только вот в вашем тексте это не отражено, и потому подпись к графику выглядит не к месту :)
Как я понял, выбрано среднее, чтобы время не пройденных тестов не было «идеальным» 0 мс :)
Это среднее между ускорением работы для различных типов тестов :) В любом случае, раз уж вы написали в статье, что это среднее геометрическое, а на графике построено ускорение, хорошо бы разобраться, что же на самом деле усреднялось :)
Указал, что на графике ускорение, а не время выполнения.
А ещё есть среднее гармоническое, и не только… :)
:-) Да, хабр уже не тот :-) Если по делу, то ответил Iskin'у чуть выше.
Теперь руби выглядит значительно интереснее.
интересно, кто-нибудь сподобится портировать хотя бы часть бенчмарка на groovy 1.6-beta для сравнения по скорости ruby vs jruby vs groovy?
Прошу, только там более старая версия JRuby. Учитывая сравнение Ruby vs. JRuby, такое ощущение, что они JRuby без -J-server запускают или учитываю запуск JVM на каждом тесте.
там всё-таки другие бемчмарки, да и версии там старые

есть ещё, кстати, shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=jruby

интереснее всего было бы сравнить именно на «родных» бенчмарках. я б портировал, но я в ruby не силён :(
есть желающие помочь?
вот это уже интереснее, спасибо!
Это же насколько медленно он должен был быть реализован, чтобы его можно было бы ускорить в N раз?.. О_о
Напиши сначала интерпретатор, а потом VM — сравни, и поймёшь.
У Ruby был довольно простой интерпретатор. Новый Ruby 1.9.1 не интерпретирует и постоянно смотрит в код (дерево кода), а компилирует исходник в байт-код и потом уже выполняет. Такой подход практически всегда даёт колоссальный прирост производительности.
Пожалуй, времени и энтузиазма моего на подобный подвиг не хватит… Вы меня заинтересовали сравнением, почитал статьи. Интересно, из чисто скриптового, интерпретируемого языка — не станет ли он компилируемым, хотя бы и в байт код?..
вообще говоря, 1.9 примерно это и делает. Ruby-код сначала транслируется во внутреннее представление, а потом это внутреннее представление исполняется. Таким образом появляется возможность:

а) оптимизировать код перед исполнением.
б) кэшировать уже оттранслроанные участки кода.
Уже можно с помощью JRuby получить из текстовых Ruby-исходников class-файлы с байт-кодом под Java.
UFO just landed and posted this here
ух ты, неужели есть вообще хоть какие-то способы просто ускорить рендеринг erb?
UFO just landed and posted this here
А можете просвятить не-программиста?
Мы разрабатываем интернет проект на рельсах, Руби там естественно не 1.9.1, а какой-то иной, более старый. Так вот вопрос: можно ли простой переустановкой заменить старый Руби на новую версию, и будет ли от этого в итоге быстрее работать сам сайт? (извините заранее за возможно глупую постановку вопроса)
В руби 1.9 есть небольшие изменения языка: надо перепроверять, что проект будет работать. Основная проблема с ним — сторонние библиотеки, они еще не все совместимы.

Без дополнительных исправлений в коде можно использовать REE (http://www.rubyenterpriseedition.com/). Есть еще стабильная верси JRuby, но сложно сказать насколько ее можно использовать для production.
UFO just landed and posted this here
UFO just landed and posted this here
А вы вызывали jruby с -J-server (как в этом тесте и что вполне логично для веб-сервера)?
UFO just landed and posted this here
там и пайтон 2.5.

Ну я и написал — ждемс реальных тестов, а не синтетики
Странно — а приведённые вами тесты по ссылке вот этого:
Пока руби отличает еще и пожирание памяти — в 5 — 10 раз больше пайтона.

совершенно не показывают.
Sign up to leave a comment.

Articles

Change theme settings