Донат На хостинг |
ISK за переводы до 75kk за 1000зн. |
Хроники EVE Сборник |
Новичкам Полезная информация |
Stackless Python 2.7
#22
Отправлено 05 September 2010 - 13:16
Бред.
Пока ты будешь писать программу на С, которая будет считать 2^1000, я на Python это посчитаю на раз-два, просто написав 2**1000. Логика вроде if/while работает с одинаковой скоростью тоже.
Бред то чем вы занимаетесь. Сравнивать производительность у языков у совершенно разного уровня. Но я всё же продолжу заниматься тем же бредом
Есть два кода:
Python:
i = 0while (i < 1000000): print i i = i + 1
С:
#include <stdio.h>int main (){int i;for(i = 0; i < 1000000; i++) printf ("%d\n", i);return 0;}
Итак кто же быстрей сделает эту однотипную операцию, я специально вывожу вывод в /dev/null что бы тест не зависел от фазы луны. Принтскрин с результатами в аттаче. Так что С считает на начале слово раз, а питон, на раз-два-три
Еще можно ради интереса сделать программку которая считывает данные из файла(скажем так метров 50-100 было), что-то с ними делает и записывает в другой файл. Но это всё ровно бред, я еще раз повторюсь, сравнивать эти языки дурное занятие )
Сообщение отредактировал doommer: 05 September 2010 - 13:20
#23
Отправлено 05 September 2010 - 13:36
Ну если уж ты занялся этим бредом, то теперь будь добр, сделай второй шаг, добавь в оба теста по паре нулей к циклам, а затем из полученных результатов вычти их первые результаты.Бред то чем вы занимаетесь. Сравнивать производительность у языков у совершенно разного уровня. Но я всё же продолжу заниматься тем же бредом
Есть два кода:
#24
Отправлено 05 September 2010 - 13:36
...
Кстати, боян - на оффе уже было:
http://www.eveonline...a...2&page=1#27
edit: хотя нет, если по паре ноликов добавлять результат все равно сильно различается:
Сообщение отредактировал DarkPhoenix: 05 September 2010 - 14:11
There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all
#25
Отправлено 05 September 2010 - 13:44
Я на простеньком примере попытаюсь объяснить. Систему с кластерингом можно представить как большой автобан, но утыканный светофорами в местах, где контроль должен передаваться от одной машины к другой. В такой ситуации в-общем-то неважно, будешь ли ты жечь движок на форсаже или ехать свои пенсионерские 120 - на каждом светофоре все равно будешь стоять и ждать как все. Поэтому зачем выпендриваться?
Вот как, мне просто ухо режет слово "кластерингом" ) Имел "счастье" собирать не один кластер, как http\ftp\smtp-pop3 так и для других специфичных вычислительных целей, основываюсь на своем опыте могу сказать что в любой большой распределенной вычислительной системе есть слабые места(как я понял это и есть те самые светофоры ), светофоры могут быть двух типов программные или аппаратные (могут быть одновременно и те и те )) проблему с которыми можно решить, программно(ресталинг кода или а на *** все заново о0) и аппаратно(например если проблема с пропускной способностью сети, поставить еще в стек портов, на серверах добавить сетевух(или изменить их режим работы), протянуть дополнительный проводчик к провайдеру и т.д, вертикально\горизонтальное масштабирование ). Зачастую программные светофоры самые проблемные и решения проблем с ними, может убить много времени и чел. ресурсов, да и не всегда как показывает практика, их под силу решить той или иной команде. И кстати язык программирования тут вовсе не причем.
Что касается преимуществ С - в местах со сложной логикой работы с машинными ресурсами он может дать прирост производительности, если программист точно знает особенности работы системы и способы на них повлиять.
Но если где-то ошибется, или еще интереснее - захочется поменять систему, то все это упадет с большим треском и придется затратить дополнительные месяцы чтоб все снова заработало.
А для пайтона вроде бы есть JIT-компилятор
Еще раз повторюсь, каждому языку, своё время и место, например на каком-нибудь свичике под управлением *inx подобной ОС, интерпретатор Phyton нафиг не нужен, а вот исполняемый код С вполне там уживается.... )
#27
Отправлено 05 September 2010 - 14:23
Ну если уж ты занялся этим бредом, то теперь будь добр, сделай второй шаг, добавь в оба теста по паре нулей к циклам, а затем из полученных результатов вычти их первые результаты.
Добавил по пру нулей в каждый из исходников:
И что дальше?
Сообщение отредактировал doommer: 05 September 2010 - 14:24
#28
Отправлено 05 September 2010 - 14:23
Ну на самом деле у тебя далеко не оптимальный синтаксис в питоне. Выше я привел пример с нормальным, там срубается 1.5-2 минутыИ что дальше?
Да, си получается намного быстрее на итерациях. Даже с++ значительно медленнее.
There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all
#29
Отправлено 05 September 2010 - 14:29
Ну на самом деле у тебя далеко не оптимальный синтаксис в питоне.
Честно признаюсь сегодня я написал свою первую программу на Питоне
Выше я привел пример с нормальным, там срубается 1.5-2 минуты
Всё ровно есть дельта во времени, хотя делается по сути одно и тоже, причем эта дельта довольно большая.
Да, си получается намного быстрее на итерациях. Даже с++ значительно медленнее.
Можно попробовать чтения и запись в файл, вызов\завершения объектов(ну это тогда уж С++), уверен что С\С++ будут быстрей, хотя и не так на много.
адд. Да и у тебя машинка на много шустрей чем испытуемый мною )
Сообщение отредактировал doommer: 05 September 2010 - 14:30
#30
Отправлено 05 September 2010 - 14:37
Если выводить в /dev/null из самой программы, С делает за 18 сек, С++ за 36, питон за 2:15. Но, к счастью, приложения - это не только итерации, которые так легко щелкает сиМожно попробовать чтения и запись в файл, вызов\завершения объектов(ну это тогда уж С++), уверен что С\С++ будут быстрей, хотя и не так на много.
А еще есть штучки типа http://psyco.sourceforge.net/
There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all
#31
Отправлено 05 September 2010 - 14:43
Если выводить в /dev/null из самой программы, С делает за 18 сек, С++ за 36, питон за 2:15. Но, к счастью, приложения - это не только итерации, которые так легко щелкает си
А еще есть штучки типа http://psyco.sourceforge.net/
ыыы, специально для убнутовцов
http://shootout.alio...p;lang2=python3
чего там на серверах EVE за ОС ? )
Сообщение отредактировал doommer: 05 September 2010 - 14:45
#33
Отправлено 05 September 2010 - 15:03
Или в том, что питон счетчик цикла держит в памяти, а си в регистре.
А может и то и другое.
Но вообще, это все ерунда, на самом деле. В лучшем случае все это приведет к тому, что придут гуру питона и покажут код, который будет выполняться быстрее, чем его реализация в лоб на си, просто потому-что будут знать, где ошибается оптимизатор gcc. А потому придут гуру си назовут предыдущих гуру ламерами и покажут, как надо эту хрень делать на си правильно. А потом придет еще кто-нибудь и начнет вытаскивать какие-нибудь заброшенные и никому не нужные куски кода из glibc и ржать над ними, крича, что то, что написано с такими библиотеками не может работать быстро в принципе. А потом придет еще кто-нибудь...
В любом случае, ни к тему подобные споры не приведут, каждый останется при своем мнении.
#35
Отправлено 05 September 2010 - 20:40
Я, конечно, ассемблера не знаю, но при кратком взгляде на сгенерированный гцц код у меня возникло впечатление, что оно этот цикл разворачивает в одну длиииинную простыню без всяких итераций.Да, си получается намного быстрее на итерациях. Даже с++ значительно медленнее.
#36
Отправлено 06 September 2010 - 5:34
Ну понимаешь важно то как это откомпилиться а не как код выглядит, и важна производительность, иногда длинная простыня даёт большую производительность чем короткий и понятный код с кучей циклов...Я, конечно, ассемблера не знаю, но при кратком взгляде на сгенерированный гцц код у меня возникло впечатление, что оно этот цикл разворачивает в одну длиииинную простыню без всяких итераций.
#38
Отправлено 06 September 2010 - 12:47
Я, конечно, ассемблера не знаю, но при кратком взгляде на сгенерированный гцц код у меня возникло впечатление, что оно этот цикл разворачивает в одну длиииинную простыню без всяких итераций.
вовсе нет. Но соглашусь что gcc еще тот компилятор.
Может просто сюда посмотрите?
А может быть сюда ?
В этой теме доказано, что C очень быстро делает ничего.
если бы так думали бы все программисты, то никакой там Unix и тем боле Питона\ПХП и так далее, не было бы на свете
#40
Отправлено 13 December 2011 - 17:00
Бред то чем вы занимаетесь. Сравнивать производительность у языков у совершенно разного уровня. Но я всё же продолжу заниматься тем же бредом
Есть два кода:
Python:i = 0while (i < 1000000): print i i = i + 1
С:#include <stdio.h>int main (){int i;for(i = 0; i < 1000000; i++) printf ("%d\n", i);return 0;}
Итак кто же быстрей сделает эту однотипную операцию, я специально вывожу вывод в /dev/null что бы тест не зависел от фазы луны. Принтскрин с результатами в аттаче. Так что С считает на начале слово раз, а питон, на раз-два-три
Еще можно ради интереса сделать программку которая считывает данные из файла(скажем так метров 50-100 было), что-то с ними делает и записывает в другой файл. Но это всё ровно бред, я еще раз повторюсь, сравнивать эти языки дурное занятие )
Обратите внимание, что здесь не учитывается время затраченное на загрузку python интерпретатора. Теоретически при запущенном приложении данный код отработает гораздо быстрее чем при полном запуске. И пример кода слишком прост чтобы протестировать скорость работы реального приложения. Так что однозначные выводы из этого теста всё равно не сделать.
1 посетителей читают тему
0 members, 1 guests, 0 anonymous users