LINUX.ORG.RU
ФорумTalks

Что быстрее, Bash или Python?

 ,


0

2

ПРивет, посоны. С коллегой тут закусился, что быстрее работает? Я топил за питон, так как начитался недавних пресс-релизов об ускорении аж до 60%. Но других аргументов то у меня собственно и нет. Поэтому пришёл сюда, чтобы набраться мудрости и завтра ковровым аргументометанием принудить его к миру.

★★★

Последнее исправление: Dimez (всего исправлений: 1)

Зависит от задачи. Если вызывать сторонние программы в основном, то Bash может быть быстрее за счёт меньшего времени непосредственно запуска скрипта (в самом начале). В большинстве остальных задач Python будет быстрее, и надо уже сравнивать насколько.

CrX ★★★★★
()
Ответ на: комментарий от alex1101

да это то понятно. Я тут, кстати, перед завтраком ядро на нём переписал

SpaceRanger ★★★
() автор топика

Ну замеряйте. Прогоните пару задач.

chenbr0
()

Баш – это клей для очень быстрых программ на Си. В зависимости от задачи он может быть как ОЧЕНЬ быстрее, так и очень медленнее.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от shell-script

А если нужно не забивать гвоздь, а проволоку согнуть особым манером?

Если сгибать под прямым углом, пара ударов молотком быстрее, чем возиться с плоскогубцами. Но в этом случае молоток требует большего мастерства. Про КРУГЛОгубцы речь не шла :)

question4 ★★★★★
()

Быстрее всего мысль человеческая. Хороший алгоритм на баше/питоне быстрее плозого алгоритма на плюсах.

AntonI ★★★★★
()
Ответ на: комментарий от shell-script

Шуруп забитый молотком держит лучше чем гвоздь закрученный отверткой. А молотковая резьба вообще самое прочное соединение.

AntonI ★★★★★
()
Ответ на: комментарий от voltmod

За 0.185 сек. ты вряд ли заваришь чай, но вот проглотить таблетку теоретически успеешь.

thesis ★★★★★
()

Ну как бы. Числа складывать питон явно быстрее будет. Инициализироваться и вызывать другие программы баш. Какие ваши бенчмарки?

Aswed ★★★★★
()

Я как-то делал инвентаризацию сети (состоящей на 99,9% из Cisco).
Программа должна была лазать по железкам по SNMP, собирать инфу и
рекурсивно обходить сегмент сети на основании таблички CDP.
Так вот, прототип я наваял на bash+snmpwalk/snmpget и так далее.
Работало это миллион лет. Но концепт зашёл и я переписал на C+netsnmp.
Уверен что на питоне работало бы так же быстро, как и на С.

goodwin ★★
()
Ответ на: комментарий от th3m3
[cppmm@damned compare]$ python --version
Python 3.10.8

Но я бы искал причину такого поведения не в версии питона, а в исходниках тестов. ;)

shell-script ★★★★★
()
Ответ на: комментарий от th3m3

Если и проявляется, то на чём-то более тяжёлом.

[cppmm@damned compare]$ python --version
Python 3.10.8
[cppmm@damned compare]$ time ./python-world.py
Hello, World!

real    0m0,047s
user    0m0,046s
sys     0m0,000s
[cppmm@damned compare]$ sudo eselect python set 2
[cppmm@damned compare]$ python --version
Python 3.11.0
[cppmm@damned compare]$ time ./python-world.py
Hello, World!

real    0m0,044s
user    0m0,033s
sys     0m0,010s
[cppmm@damned compare]$

shell-script ★★★★★
()

Правильно топил. Но дело тут не в скорости, а в том что bash - это не ЯП, а шелл, его задача - комбинировать запуск\вывод\ввод внешних программ, что априори не может быть быстрее.

#!/bin/bash
let a=1
if [[ $a == 1 ]];then echo "hello world";
fi

Сколько внешних программ вызывает баш при обработке этого кода ?)

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Скобочки надо было в if одинарные использовать, тогда в вопросе был бы подвох.

emorozov
()

bash ЕМНИП даже в байт-код не умеет компилироваться, не то что там jit. Так что на каком-нибудь перебирании массивов слив будет на порядок https://unix.stackexchange.com/questions/303157/is-there-something-wrong-with-my-script-or-is-bash-much-slower-than-python

Но спор абсолютно бессмысленный, разве что набросить на лоре, для задач, где применяют пистон баш не применяют, и наоборот.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от AntonI

Быстрее всего мысль человеческая. 

«Мысль человеческая» довольно тормозная т.к. распространение сигнала по нервам медленнее чем в проводниках. Даже в ПДД прописана задержка на типичное время реакции для действия в котором головной моск почти не участвует. За одну секунду медленный старый комплюктер сделает дофига вычислений. А человеку если активно подумать надо при высокой неопределенности (ситуация совсем новая, т.е. требует логических выводов или обучения) — тут вообще идеал «овернайт», т.е. «переспать с проблемой». Итого, пользователь самая медленная часть системы.

slackwarrior ★★★★★
()

Конечно баш быстрее. Пока питонисты подсчитают все отступы, баш уже всё сделает.

Psilocybe ★★★★
()
Ответ на: комментарий от slackwarrior

Скорость распространения сигнала по нервам не имеет значения, поскольку вычисления недискретны.

Вряд ли она вообще применима к организмам.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Имеет, потому что организмы медленнее компьютеров, независимо от механизма вычислений. гугл «Время реакции». Алсо сознание человеков медленне их подкорковых процессов и спинного моска, а подкорковые процессы не умеют в смену стратегии поведения, кроме выбора из уже известных (заученных до автоматизма), которые стратегии никогда на ходу не разрабатываются (должен сформироваться навык или сконсолидироваться память), это тупо экспериментально проверенные эмпиричеакие факты.

slackwarrior ★★★★★
()
Ответ на: комментарий от shell-script

Так-то Perl всё-равно делает Python как стоячего.

Perl:

$ time perl python-world.py
Hello, World!
________________________________________________________
Executed in    5.46 millis    fish           external
   usr time    2.96 millis    0.00 micros    2.96 millis
   sys time    2.52 millis  563.00 micros    1.96 millis

Python:

$ time python3 python-world.py
Hello, World!

________________________________________________________
Executed in   69.81 millis    fish           external
   usr time   57.88 millis  345.00 micros   57.54 millis
   sys time   11.15 millis  246.00 micros   10.91 millis
Ja-Ja-Hey-Ho ★★★★★
()
Ответ на: комментарий от slackwarrior

Время реакции не имеет ничего общего с механизмом вычисления.

Если ты в свой выключатель света встроишь RPI, которая будет отлавливать нажатие выключателя через GPIO, а потом по сети по HTTP-протоколу будет посылать GET-запрос на сервер, который его обработает баш-скриптом if\then и пошлет в свою очередь запрос на RPI люстры, которая через реле зажжет лампочку - время реакции тоже будет медленное, но это не значит что а) Сервер тормознутый; б) Прямая цепочка «выключатель-лампочка» будет вычислять быстрее сервера.

Как и все остальное что ты написал - не имеют ничего общего со «скоростью».

Хочешь измерить скорость ? Запросто. Пиши на своем opencv алгоритм определения отличия леопарда от леопардового дивана и замеряй скорость определения им, а потом ребенком лет этак 10-ти. УДИВИШЬСЯ. Так и быть, в качестве форы разрешаю использовать камеру 120fps.

windows10 ★★★★★
()
Ответ на: комментарий от slackwarrior

Ты наверно компьютерщик какой-то, не понимаешь русского языка.

«Быстрее всего мысль человеческая» означает совсем не то, что ты понимаешь по компьютерски. Это означает что вот ты думаешь о том что перед тобой и вот подумал о Москве а затем сразу о заморском берегу. И это и означает что мысль быстрее чем ты добежишь туда пешком или долетишь на своей новомодной воздушной повозке. Сказки народные читать надо, а не только свои «маны».

sin_a ★★★★★
()

С коллегой тут закусился, что быстрее работает?

Ну вы бы ещё на предмет «что быстрее плавает, ёжик или табуретка?» поспорили.
bash - GNU Bourne-Again SHell
python - an interpreted, interactive, object-oriented programming language

anc ★★★★★
()

Если чисто прям язык без библиотек ускорялок сишных/плюсовых то bash быстрее наверное, но нужно тестировать.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от shell-script

А если в баш-скрипте запустить питон, то можно заварить чай, пока запускается баш? :)

Нет, баш же запустился :)

anc ★★★★★
()
Ответ на: комментарий от shell-script

Ну или я молотком. :)

Скорее всего это. Вспомнилось «отрезание» витухи при помощи молотка :)

anc ★★★★★
()
Ответ на: комментарий от windows10

Сколько внешних программ вызывает баш при обработке этого кода ?)

Нисколько.

anc ★★★★★
()
Ответ на: комментарий от Ja-Ja-Hey-Ho

Мне можешь не рассказывать. Вот, я тут баловался переписыванием некоторых кусков гентушных утилит. Но суть всё-равно в реализации. Программист на фортране напишет на любом ЯП программу на фортране, как говорили мудрейшие.

shell-script ★★★★★
()
Ответ на: комментарий от firkax

Вот я и говорю, что не язык даёт скорость, а конкретный код. :)

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.