All streams
Search
Write a publication
Pull to refresh
46
0
iv_s @iv_s

User

Send message
А, ну это да, и помойму уже давно. Но Ruby 1.9 очень меня порадовал YARV творит чудеса, надо будет еще 1.9.1 посмотреть.
Неплохо, совсем неплохо. Но скорей всего это не на человека, а на исследовательскую группу какого-нить университета.
С PHP понятно, это всемирный заговор:)
Я все таки надеюсь, что Ruby в Web будет успешно с ним конкурировать.

>JavaScript — тёмная лошадка, которая может насолить всем вышеперечисленным языкам, вытестив их из браузера далеко на сервер.
И не только вытеснить далеко на сервер, но и самому придти к серверам как например Jaxer и аналогичные проекты, или самоделки на Rhino/SpiderMonkey/V8.

Кстати, насчет темной лошадки — сдается мне что Erlang отхватит свою долю в серверных решениях. Но естественно уровня повыше чем задачи для Ruby/PHP.
Но это уже немного из другой оперы.
За 1.8 конечно обидно, но результат был ожидаемым:)
Насчет теста. Вот такой JRuby(самый последний с их сайта, в репах старый 1.0):
$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
$ jruby -v
jruby 1.1.6 (ruby 1.8.6 patchlevel 114) (2008-12-17 rev 8388) [i386-java]

Немного изменил код, замеряю Benchmark.realtime, а не time, т.к. Java долго стартует:

puts Benchmark.realtime { 1000.times { f.factorization 999999} }

И сами результаты:
$ ruby factor.rb
1.06909513473511
$ ruby1.9 factor.rb
0.328825235366821
$ jruby factor.rb
0.6868088245391846

Как видно из теста, ruby1.9 подает большие надежды чем JRuby:)
Хотя возможно это только на данной задаче, и из-за синтетического теста.
В топик добавлять не буду, т.к тест немного изменен, и тогда еще Groovy'цы будут требовать тестов:)
И вам спасибо:) Добавил в топик.
А размер какой случаем не знаете? Интересно сколько за инновации в программировании дают:)
А у меня наоборот, с С++ опыта совсем мало. Да к томуже я поклонник динамических языков.
Так что, про GC — это субъективно. Согласен, не будем холиварить:)
Ну это для C++. Для С то не пройдет.
Конечно не спорю, что от программиста зависит, но мне кажеться что GC все-таки надежнее.
Ну при относительно большом промежутке времени разницы практически не будет. Да к томуже старт интерпретатора с парсингом файла — пара десятков миллисекунд, что большой роль не играет.
Жизненые тесты — это интересно. Потому как тотже shootout — такиеже синтетические тесты.
Нда, с этим странно. Наверно n.times тормозит. На циклах возможно быстрее будет.
Именно поэтому я прогонял тесты по нескольку раз, и выбирал средние значения.
В доказательство — результаты для Ruby1.9 и Python на сто тысячь итераций:

$ time ruby1.9 factor.rb

real 0m27.477s
user 0m25.542s
sys 0m0.164s

$ time python factor.py

real 0m51.926s
user 0m50.791s
sys 0m0.164s

Т.е. пропорции те же что и в топике.
У меня посвежее:
$ ruby1.9 -v
ruby 1.9.0 (2008-06-20 revision 17482) [i486-linux]
За три месяца — и достаточно значительный прирост производительности у 1.9!
Похоже с 1.9.1 все будет еще интереснее:) Вечером потестю.
А 1.8 у меня 1.8.7, судя по всему регресс по сравнению с 1.8.6
Спасибо за тесты:)
А какая версия питона? У меня отставание руби значительно меньше.
$ time ruby1.9 t.rb

real 0m0.336s
user 0m0.324s
sys 0m0.000s

$ time python t.py

real 0m0.214s
user 0m0.212s
sys 0m0.004s

а 1.8 в полтора раза медленнее чем у вас
Готово, спасибо за диаграму:)
Нда, теперь понятно почему статьи с такой высокой, для новичка, периодичностью выходят.
Ажиотаж — да. Но не знаю насчет того, что Ruby обсуждается только из-за RoR.
Как говориться Ruby is not Rails:)
Например я Ruby больше для не веб задач использую.
Супер! Ставлю в топик?
Он Руби а не Раби:)
>2) Больше упор на встроенные в язык фишки; меньше — на стандартную библиотеку.
Неправельно. Синтаксический сахар — да, на него есть упор. Но это никак не связанно с библиотекой.
Почитайте теже капли(курс статей на хабре был), например работа с массивами.
Ах вот оно что. sys(и user) смысла нет добавлять. Они учтены в real. В тесте они только из-за того, что это стандартный вывод утилиты time.
Можете это убрать? И тогда, если позволите, размещу в топике.

Information

Rating
Does not participate
Works in
Registered
Activity