Что быстрее
Перейти к содержимому

Что быстрее

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

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

SpaceRanger ★★
21.11.22 07:35:14 MSK
1 2 3 →

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

CrX ★★
( 21.11.22 07:37:15 MSK )

alex1101 ☆
( 21.11.22 07:38:41 MSK )
Ответ на: комментарий от alex1101 21.11.22 07:38:41 MSK

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

SpaceRanger ★★
( 21.11.22 07:42:56 MSK ) автор топика

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

chenbr0
( 21.11.22 07:45:13 MSK )

Что быстрее, молоток или плоскогубцы?

shell-script ★★★★★
( 21.11.22 07:49:11 MSK )
Ответ на: комментарий от shell-script 21.11.22 07:49:11 MSK

Молоток. У плоскогубцев аэродинамика слабовата

saibogo ★★★★
( 21.11.22 07:55:07 MSK )
Ответ на: комментарий от saibogo 21.11.22 07:55:07 MSK

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

shell-script ★★★★★
( 21.11.22 08:00:15 MSK )
Ответ на: комментарий от saibogo 21.11.22 07:55:07 MSK

hobbit ★★★★★
( 21.11.22 08:38:41 MSK )

Прочтение темы вызывает острое желание начать писать скриптуху на c++ 🙂 Ибо нефиг.

hobbit ★★★★★
( 21.11.22 08:39:45 MSK )
Последнее исправление: hobbit 21.11.22 08:40:04 MSK (всего исправлений: 1)

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

Im_not_a_robot ★★★★★
( 21.11.22 08:45:41 MSK )
Ответ на: комментарий от shell-script 21.11.22 08:00:15 MSK

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

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

question4 ★★★★★
( 21.11.22 09:05:08 MSK )
Ответ на: комментарий от hobbit 21.11.22 08:39:45 MSK

может конкурс запилить?

Neresar ★★
( 21.11.22 09:05:22 MSK )

Баш хоть вызывается моментально, питон пока запустится можно чай заварить.

voltmod ★★
( 21.11.22 09:46:19 MSK )
Ответ на: комментарий от voltmod 21.11.22 09:46:19 MSK

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

shell-script ★★★★★
( 21.11.22 09:48:05 MSK )
Ответ на: комментарий от question4 21.11.22 09:05:08 MSK

Ты просто не умеешь пользоваться плоскогубцами. Ну или я молотком. 🙂

shell-script ★★★★★
( 21.11.22 09:48:58 MSK )

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

AntonI ★★★★
( 21.11.22 10:08:03 MSK )
Ответ на: комментарий от shell-script 21.11.22 07:49:11 MSK

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

AntonI ★★★★
( 21.11.22 10:09:16 MSK )

Баш написан на си => баш быстрее.

untitl3d ★
( 21.11.22 10:20:34 MSK )
Ответ на: комментарий от voltmod 21.11.22 09:46:19 MSK

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

thesis ★★★★★
( 21.11.22 10:29:23 MSK )

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

Aswed ★★★★★
( 21.11.22 10:34:10 MSK )
Ответ на: комментарий от untitl3d 21.11.22 10:20:34 MSK

[cppmm@damned compare]$ time ./c-world Hello, World! real 0m1,002s user 0m0,002s sys 0m0,000s [cppmm@damned compare]$ time ./python-world.py Hello, World! real 0m0,051s user 0m0,047s sys 0m0,003s 

shell-script ★★★★★
( 21.11.22 10:43:55 MSK )
Ответ на: комментарий от shell-script 21.11.22 10:43:55 MSK

А Python какой версии?

th3m3 ★★★★★
( 21.11.22 11:15:05 MSK )

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

goodwin ★★
( 21.11.22 11:17:16 MSK )
Ответ на: комментарий от th3m3 21.11.22 11:15:05 MSK

[cppmm@damned compare]$ python --version Python 3.10.8 

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

shell-script ★★★★★
( 21.11.22 11:21:55 MSK )
Ответ на: комментарий от shell-script 21.11.22 11:21:55 MSK

В Python 3.11 — ускорили инициализацию, быстрее должен быть запуск.

th3m3 ★★★★★
( 21.11.22 11:38:40 MSK )
Ответ на: комментарий от th3m3 21.11.22 11:38:40 MSK

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

[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 ★★★★★
( 21.11.22 11:48:17 MSK )

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

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

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

windows10 ★★★★
( 21.11.22 12:18:04 MSK )
Ответ на: комментарий от windows10 21.11.22 12:18:04 MSK

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

emorozov
( 21.11.22 12:23:33 MSK )
Ответ на: комментарий от untitl3d 21.11.22 10:20:34 MSK

Баш написан на си => баш быстрее.

Удивительно, но Python тоже написан на C. Поэтому, скорости равны!

emorozov
( 21.11.22 12:24:58 MSK )

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

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

goingUp ★★★★★
( 21.11.22 12:25:56 MSK )
Последнее исправление: goingUp 21.11.22 12:27:28 MSK (всего исправлений: 1)

Ответ на: комментарий от AntonI 21.11.22 10:08:03 MSK

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

slackwarrior ★★★★★
( 21.11.22 12:30:26 MSK )
Ответ на: комментарий от shell-script 21.11.22 10:43:55 MSK

Убери sleep(1) из c-world

firkax ★★★★★
( 21.11.22 12:41:32 MSK )

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

Psilocybe ★★★
( 21.11.22 12:50:22 MSK )
Ответ на: комментарий от slackwarrior 21.11.22 12:30:26 MSK

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

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

windows10 ★★★★
( 21.11.22 12:52:03 MSK )
Ответ на: комментарий от windows10 21.11.22 12:52:03 MSK

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

slackwarrior ★★★★★
( 21.11.22 13:00:50 MSK )

rupert ★★★★★
( 21.11.22 13:01:14 MSK )
Ответ на: комментарий от shell-script 21.11.22 10:43:55 MSK

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

$ 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 
$ 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 ★★★★
( 21.11.22 13:12:19 MSK )
Ответ на: комментарий от slackwarrior 21.11.22 13:00:50 MSK

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

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

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

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

windows10 ★★★★
( 21.11.22 13:13:57 MSK )
Ответ на: комментарий от slackwarrior 21.11.22 13:00:50 MSK

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

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

Развивающая игра «Что быстрее?» (Baby Step)

Развивающая игра «Что быстрее?» направлена на развитие восприятия, мышления, речи и мелкой моторики.
Игра способствует речевому развитию. При обсуждении скорости передвижения транспорта полезно активизировать в словаре ребенка степени сравнения прилагательных: быстрый — быстрее — самый быстрый; медленный — медленнее — самый медленный; грузовик больше, чем легковая машина и т.п.
По мере совершенствования действий с частями пазла ребенок начинает подбирать нужную деталь глазами, зрительно устанавливает связь между элементами пазлов. Формируется умение оставлять целостное изображение из его частей. Мышление ребенка переходит на качественно новый этап.

Ребенок в этой игре:

  • учится соединять детали пазла;
  • развивает мышление;
  • совершенствует предметно-манипулятивную деятельность.

Возраст игроков.
Развивающая игра для детей от 1 года.

Комплектность:

  • 6 картинок из двух элементов каждая;
  • правила игры.

Материал.
Картон.

В серию «Развивающие игры Baby Step» входят:

  • Развивающая игра «Лакомки»
  • Развивающая игра «Дружные семейки»
  • Развивающая игра «Зоопарк»
  • Развивающая игра «Какой цвет?»
  • Развивающая игра «Морские жители»
  • Развивающая игра «Чей домик?»
  • Развивающая игра «Что быстрее?»
  • Развивающая игра «Лесные животные»
  • Развивающая игра «Гуляем и играем»

Эксперты выяснили, что быстрее — Windows 10 или Windows 11

Новая Windows 11 работает быстрее, чем Windows 10, или наоборот? Чтобы разобраться во всех тонкостях работы свежей операционки от Microsoft, исследователи Overclockers.ru провели ряд тестов.

По их словам, результаты нельзя назвать однозначными. В тестах AIDA64 FPU VP8, AIDA6, FPU Julia и CPU-Z один и тот же компьютер под управлением Windows 11 показывал более слабые результаты, чем в среде Windows 10.

В то же время тест быстродействия Cinebench R23 показал прирост производительности — как и в комплексном тесте PCMark 10. Подросла и игровая производительность: в «Метро 2033», где есть встроенный бенчмарк, средний и максимальный FPS (частота кадров) были выше, хотя минимальный оказался немного ниже.

По словам авторов, в целом Windows 11 оставила впечатление «сырости и недоделанности», которое в том числе проявляется в падении производительности при прохождении некоторых тестов. Однако в итоге, говорят исследователи, перейти на Windows 11 придется большинству.

Что быстрее при использовании много if, if-else или switch

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

Отслеживать
ответ дан 29 июн 2018 в 11:57
Sergey Gornostaev Sergey Gornostaev
66.4k 6 6 золотых знаков 51 51 серебряный знак 112 112 бронзовых знаков
К тому же JIT может создать в итоге разный код в зависимости от типа проверяемого параметра.
29 июн 2018 в 12:33

Оператор switch , как правило (то есть когда нетривиальный, в тривиальных случаях JIT его разберет на if/else ) — транслируется в байткод tableswitch или lookupswitch

Производительность tableswitch O(1), а lookupswith O(log N) (то есть сравним с if/else/if )

Отслеживать
ответ дан 29 июн 2018 в 12:38
81.2k 7 7 золотых знаков 72 72 серебряных знака 153 153 бронзовых знака

  • java
  • android
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1670

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *