LINUX.ORG.RU

[Scripting] Shell vs Python в плане производительности


0

0

Интересует насколько медленнее работает пайтон по сравнению с шеллом (для конкретики возьмем bash, но без башизмов) и медленнее ли? Цели общесистемный скриптинг. Хочу для себя решить окупается ли падение производительности (если оно есть) легкостью написания скриптов.

★★★★★

Re: [Scripting] Shell vs Python в плане производительности

питон позволяет делать обвязку для более гибкого управления скриптами
например , асинхронная работа с помощью спавн-процессов

kto_tama ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>насколько медленнее работает пайтон по сравнению с шеллом

скорее насколько медленнее работает шелл по сравнению с питоном

dimon555 ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Шел-скрипты то и делают что родят кратковременные процессы, а значит должны быть медленнее.

urxvt ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

сфера применения слишком расплывчата
тут нужно сравнивать производительность пистона и обильно форкающихся шел+авк+сед+т.д.+т.п.

hizel ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Могу сказать, что шел-скрипт обрабатывавший входной файл размером <1Кб в течение 1 часа, будучи переписан на перл один к одному, т.е. алгоритм не изменился, стал отрабатывать за 1.5 секунды, на той же системе.
Ну а на сколько питон медленнее перла ты выясни сам, в крайнем случае ЛОР-аналитики помогут.

sdio ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>сфера применения слишком расплывчата

Если конкретизировать то сейчас меня данный вопрос интересует в применении к собственному велосипеду для автомонтирования через udev. Пара строк казалось бы, но я хочу сделать в нем поддержку различных файловых систем, простенький конфиг-файл и прочие плюшки и получается, что во-первых парой строк не отделаться, а во-вторых на пайтоне со всеми его модулями такое реализуется намного проще.

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

fat_angel ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>что шел-скрипт обрабатывавший входной файл размером <1Кб в течение 1 часа

Что он делал? О_О

>стал отрабатывать за 1.5 секунды, на той же системе.


Окей все понятно

>Ну а на сколько питон медленнее перла ты выясни сам, в крайнем случае ЛОР-аналитики помогут.


Так ведь если верить этим самым аналитикам, ветка пайтона 2.х как раз таки быстрее перла. Нэ?

fat_angel ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

> Ну а на сколько питон медленнее перла

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

kto_tama ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

что шел-скрипт обрабатывавший входной файл размером <1Кб в течение 1 часа

Что он делал? О_О

Там несколько таких циклов:

while ($i < $n) #for 1 pregs ==========================================================
    @ i++
    set line = `awk "NR == $i" {/tmp/prepreg1}`
    set mat = ($line)
    @ a = 1
    while ($a <= $#onze)
        @ b = 1
        while ($b <= $#copper)
            @ c = 1
            while ($c <= $#onze)
                @ d = 1
                while ($d <= $#copper)
                    @ record_counter++
[skip]
...
[/skip]

                    @ d++
                end
                @ c++
            end
            @ b++
        end
        @ a++
    end
end

sdio ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>>Ну а на сколько питон медленнее перла

>Есть мнение что все наоборот.


Точно перл медленнее питона в 0.5 раза, например.

sdio ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Проблем с производительность не было, python конечно может сожрать кучу ресурсов, если писать быдлокод, но пока проблем не было. Быстрее чем shell скриптинг и переносимость между Linux/FreeBSD.

xpahos ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

А что мешает написать два аналогичных скрипта - на шеле и на питоне, и замерить производительность?

h8 ★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Сильно зависит от задачи. Мало что можно сделать на шелле и пейтоне похожим образом.

melkor217 ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>>> Ну а на сколько питон медленнее перла >> Есть мнение что все наоборот. > Точно перл медленнее питона в 0.5 раза, например.

:) прикольно. т.е. в таком случае питон быстрее перла в два раза.

rha ()

Re: [Scripting] Shell vs Python в плане производительности

> Хочу для себя решить окупается ли падение производительности (если оно есть) легкостью написания скриптов.

У меня обычно получается наоборот: на баше писать проще, но медленее. Хотя, от задачи зависит.

provaton ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>> Точно перл медленнее питона в 0.5 раза, например.

>:) прикольно. т.е. в таком случае питон быстрее перла в два раза.

Я бы сначала попытался разобраться что такое "медленнее в 1.0 раз" с помошью индукции от "медленнее в 2.0 раза".

Absurd ★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

>>> Точно перл медленнее питона в 0.5 раза, например.

>>:) прикольно. т.е. в таком случае питон быстрее перла в два раза.

>Я бы сначала попытался разобраться что такое "медленнее в 1.0 раз" с помошью индукции от "медленнее в 2.0 раза".

тогда перл быстрее питона в два раза. у меня в голове от "медленнее" и "в 0.5 раза" коллизии начинаются :)

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

rha ()

Re: [Scripting] Shell vs Python в плане производительности

Ладно, тред потихоньку начинает перетекать в холивар perl vs python, поэтому всем спасибо, для себя я выбор сделал.

fat_angel ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Питон стартует медленне, но интерпретатор питона сильно быстрее шелла и это надо учитывать. Только вот скрипты писать на нём не сильно удобно ибо вот такого в нём нет:

DATA="`someprog | grep .. | tail `"

Это реализуется через popen/subprocess, но читабельность падает.

true_admin ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

почему в треде до сих пор не посоветовали ruby?

нормальный синтаксис есть (включая backquotes), скорость тоже (у меня на синтетических тестах обгонял py3k, ну даже если в среднем не обгоняет, то величина того же порядка)

mholub ()

Re: [Scripting] Shell vs Python в плане производительности

Мне руби не нравится, потому и не советую :). Ну а про скорость всё написано сдесь: http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=python...

Тока какая скорость будет на реальных задачах зависит скорее от программиста. И скорость отнють не самый важный фактор, иначе бы весь мир писал на асме. Ну и щас есть всякие оптимизированные версии софта, для одного питона, например, есть и unladen swallow, psyco итп.

true_admin ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

> И скорость отнють не самый важный фактор, иначе бы весь мир писал на асме

Далеко не факт что твой аналог шелл-скрипта на асме будет работать быстрее, далеко не факт.

provaton ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Если dash более простая штука, чем bash и тем более zsh, это отнюдь не значит, что dash-скрипты работают быстрее.
В zsh применяются, к примеру, различные сложные оптимизации, которые могут повлиять на скорость (сравнительно с dash).

anarquista ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

Вот простой пример:

#!/bin/sh
a=0
while :; do 
    a=$(($a+1))
    [ $a -gt 500000 ] && break
done
time ./test.sh
real    0m2.281s
user    0m2.272s
sys     0m0.008s

#!/bin/sh
a=0
while /bin/true; do 
        a=$(($a+1))
    [ $a -gt 500000 ] && break
done

$ time ./test.sh

real    14m58.004s
user    3m46.814s
sys     11m29.971s

sdio ★★★★★ ()

Re: [Scripting] Shell vs Python в плане производительности

> Там несколько таких циклов:

ну просто это неправильное использование шелла. Привычки других языков нельзя переносить на шелл. Нужно было большой пайп зафигачить..

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