Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Попытка сравнить C/Java/C#/Python 
:(
    Опции темы
APM
Дата 21.1.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 13.7.2007

Репутация: нет
Всего: 6



Вот решил попробовать сравнить эти языки. 
Сравнение проводилось на основе времени, которое требуется для сортировки 10000 случайных элементов методом пузырька.
С/С++ - 0,330 сек.
Python - 42 сек
Java - 0,515 сек (код для сортировки даже переписывать не пришлось)
С# - .NET 3.5 - 0,350 сек. 

Результаты довольно странные, получается что С# лишь немного хуже C, а Python отстает почти на два порядка.
Попробуем запустить эту же программу, но увеличим число элементов до 100000, Python естественно не участвует :(
С/С++ - 27,6 сек.
Java - 37,7 сек.
C# - 32, 5 сек.

Для меня такие результаты оказались неожиданность, уж никак не ожидал что на такой задаче С# будет таким шустрым, а Питон так провалится.

У кого какие мнения? =)
PM   Вверх
LSD
Дата 21.1.2008, 14:36 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(APM @  21.1.2008,  14:28 Найти цитируемый пост)
У кого какие мнения? =)

1. Есть специальный раздел для тестов.
2. Без исходников, конфигурации и версий компиляторов это не тест, а баловство.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
mr.DUDA
Дата 21.1.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Поддерживаю предыдущего оратора  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
APM
Дата 21.1.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 13.7.2007

Репутация: нет
Всего: 6



C++ - компилятор из MSVS 2008 Express
C# - .NET 3.5
Java - Jre 1.6
Python - 2.5

Core 2 Duo T5500, 1Gb Ram
PM   Вверх
Ch0bits
Дата 21.1.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



Блин, сортировка пузырьком, не смешите мои подковы!  smile  smile 
PM WWW   Вверх
Lazin
Дата 21.1.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Питоном что запускал .py или .pyc? И вообще нечего сравнивать по скорости питон и С++(или любой другой язык со статической типизацией), это всеравно что палец известно с чем сравнивать)). У питона другие задачи.

Это сообщение отредактировал(а) Lazin - 21.1.2008, 16:19
PM MAIL Skype GTalk   Вверх
MAKCim
Дата 21.1.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



APM, 
вот сортировка на Python
Код

sorted([randint(0, 0xFFFFFFFF) for x in xrange(0, 10000)])

0.04 секунд
Linux (x86-64, 2.6.18), CPU = C2D 1.86Ghz, PVM 2.5
 smile 

Это сообщение отредактировал(а) MAKCim - 21.1.2008, 17:51


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
APM
Дата 21.1.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 13.7.2007

Репутация: нет
Всего: 6



Я не пытался выполнить сортировку как можно было быстрее, поэтому выбрал самый плохой для этого алгоритм. Затем код был одинаково написан для четырех языков. В итоге получились такие результаты. Я не пытался использовать "фишки", доступные для конкретного языка.
PM   Вверх
Void
Дата 21.1.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Может мы хотя бы код увидим...


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Sardar
Дата 21.1.2008, 18:54 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Вы бы ещё сюда Haskell со строковыми и monadic I/O приписали  smile 
Простые истины (из пальца smile ):
  • пустая итерация в миллиард раз (к примеру инкремент целого) - быстрей на асме (при условии что итерация реально выполняется). 
  • фильтрация растровой картинки, представленной массивом пикселей быстрей на C
  • работа с массой строковых операций, юникод, без лимитов на размеры и беря во внимание лень программиста - вероятно PHP6/Java/C#. Да, на C можно быстро, но все тупо копируют байтовые массивы ;-)
  • собрать огромное DOM дерево с массой дополнительных интерфейсов, в итоге граф так на 10.000 нод - однозначно все со сборщиком мусора, т.е. Java/C#
  • IDE с массой взможностей, анализ кода на лету, плагины и т.д. (читаем NetBeans6) - однозначно Java/C#. Кто не уверен, запускайте NetBeans6 - штука реактивная.
  • парсеры, текстовы ввод (гибкость/скорость) - вероятно OCaml, Perl6
Всё упирается в лень программиста, если он робот, то и на ASM'е сможет шустрый Mozilla/FireFox написать (шанс нулевой, от лени будет пользоваться простейшими алгоритмами, в итоге будет тормозить). Сейчас лиса до жути задумчива, аргумент против C++ (за работу с памятью). Чем меньше оптимизированных решений в языке (алгоритмы), тем более отвратный софт в итоге. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mayk
Дата 21.1.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Цитата(Sardar @  21.1.2008,  22:54 Найти цитируемый пост)
# парсеры, текстовы ввод (гибкость/скорость) - вероятно OCaml, Perl6

Более разумно использовать генераторов этих самых парсеров[привет, antlr и yacc]. 
Менять ради одной подзадачи язык — не очень здравая идея имхо.

Тем более что генераторы парсеров есть почти для всех языков. Ну для c,c++,java точно есть.

Это сообщение отредактировал(а) Mayk - 21.1.2008, 19:14


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Void
Дата 21.1.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(Sardar @  21.1.2008,  20:54 Найти цитируемый пост)
итерация в миллиард раз быстрей на асме (при условии что итерация реально выполняется). 

Неудачно предложение построил, я полминуты где-то пытался понять, откуда такое фантастическое быстродействие smile

Добавлено через 3 минуты и 29 секунд
Цитата(Mayk @  21.1.2008,  21:12 Найти цитируемый пост)
Менять ради одной подзадачи язык — не очень здравая идея имхо.

Подзадачи — да, если задача в целом связана с синтаксическим анализом, why бы и not.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Lazin
Дата 21.1.2008, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Невсегда важно быстродействие, иногда(почти всегда) важнее скорость разработки,масштабируемость, надежность. 
я этим посто кагбы открыл всем глаза на реальне положение дел в программировании 
PM MAIL Skype GTalk   Вверх
Sardar
Дата 21.1.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Цитата(Void @  21.1.2008,  18:13 Найти цитируемый пост)
Неудачно предложение построил, я полминуты где-то пытался понять, откуда такое фантастическое быстродействие

Точно, изменил smile

Цитата(Mayk @  21.1.2008,  18:12 Найти цитируемый пост)
Более разумно использовать генераторов этих самых парсеров[привет, antlr и yacc].

Помимо самого анализа нужно ещё и представление AST/других структур, манипуляции с ними и т.д.  Да хотя бы имея алгебраические  типы уже проще строить деревья и т.п.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mayk
Дата 21.1.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Цитата(Sardar @  22.1.2008,  00:30 Найти цитируемый пост)

Помимо самого анализа нужно ещё и представление AST/других структур, манипуляции с ними и т.д.  Да хотя бы имея алгебраические  типы уже проще строить деревья и т.п. 

 smile 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0721 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.