The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Опубликован язык программирования Ruby 3.3, opennews (??), 25-Дек-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


133. "Опубликован язык программирования Ruby 3.3"  +/
Сообщение от Аноним (41), 26-Дек-23, 13:33 
Внимание, а теперь правильный ответ.
Сравнение производительности Ruby c Python:
  https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Вывод: В большинстве тестов Ruby рвет Python как тузик грелку с достаточно большым разрывом, в тех немногочисленных тестах, где Python оказывался быстрее наблюдалось совсем небольшое отставание Ruby.

Я таки вам скажу даже больше Python вчистую по производительности сливает даже древним интерпретируемым VBA и VBScript, не говоря уже о компилируемом VB (не путать с современным VB.Net, которому впрочем Python тоже сливает с разгромным счетом)

Python - это пример того, как никчемная технология завоевала широкое признание. Да, к сожаление, в нашем мире так бывает.

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

143. "Опубликован язык программирования Ruby 3.3"  +/
Сообщение от all_glory_to_the_hypnotoad (ok), 26-Дек-23, 15:19 
Здесь все сравнения кривые, но даже по ним CPython как раз получается лучше оптимизированным и сбалансированным...

В первом fannkuch-redux сравиниваются однопоточнрые версии с распараллеливанием. В однопоточном Python против Ruby 15 минут против 24, т.е. Ruby просел радикально. С раскидыванием по процессам и потокам получается обратная картина - примерно 280 сек против 180.

Однако в варианте Ruby потоки и кастомная реализация раскидывания заданий против стандартной реализации на процессах в Python. Фактически во вторых тестах сравнили только код распараллеливания, а не сами языки с интерпретаторами. Просадка на 10 минут в однопотоке гораздо хуже просадки 100 сек из-за обвязок раскидывания по процессам.


Итого... Ruby везде запускаеться --yjit, хотя питон только интерпретаор. Тем не менее даже так Ruby на некоторых тестах, как выше, умудряется ощутимо сливать. Также нужно обратить внимание на память, в Ruby реализациях обычно раза в два потребление больше и в некоторых тестах разница ещё выше.

Основной сценарий использования ЯП из этой ниши это однопоточные приложения. Чтобы правильно сравнивать, базово нужно тестировать в однопотоке и без JIT. Тесты с JIT нужно показывать отдельно, также отдельно нужно показывать результаты распараллеливания на точно такой же нагрузке чтобы оценить эффективность обвязок и потоков. Дополнительно нужно тестировать время холостого запуска, этого вообще нет, хотя на практике одна из важных характеристик (например, скрипт нужно запустить 10к раз). В тестах всё навалено в кучу и просто так не разобрать что и с чем сравнивается.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру