LINUX.ORG.RU

Ksh, вроде, самый быстрый среди shell'ов, а ? :)


0

2

Обгоняет по скорости все shell'ы, которые я протестировал. Самый медленный bash. Хваленый zsh чуть-чуть быстрее bash. Bourne shell и dash тоже показывают неплохие результаты.



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

для каких целей? спорим сишечку и плюсы не обгонит по скорости и потреблению памяти :3

anonymous
()
Ответ на: комментарий от anonymous
for i in `seq 1 10000`;do
    echo -n "*ice"
done

:$ time ksh test.sh
real	0m0.08s
PymOxim
() автор топика
Ответ на: комментарий от anonymous

> спорим сишечку и плюсы не обгонит по скорости и потреблению памяти
Мы говорим о shell'ах. Из интерпретируемых язык в порядке убывания perl, ruby, python. Кстати скомпилировал на С++ - perl оказался быстрее.

PymOxim
() автор топика
real	0m0.08s

Это на моей машине, конечно. Но быстрее чем остальные. Я не поклонник перла, но оказался быстрее всех.

PymOxim
() автор топика

Оставил Korn Shell. Да и работа с тригонометрическими функциями удобнее, чем на Bash, там вообще костыль какой-то.
echo $((sin(90)))

PymOxim
() автор топика

Ну я в шелле не вычислениями для NASA занимаюсь, поэтому мне секунда на тысячу операций погоды не делает. В zsh мне нравится умный автокомплит, два промпта и много-много рецептов на разные случаи жизни.

Hoodoo ★★★★★
()

В lua и csh не смог цикл записать, так как, незнаком с синтаксисом. Можно, кстати, на ассемблере. И заодно на других языках. Кто подкинет код?

PymOxim
() автор топика
Ответ на: комментарий от Hoodoo

> В zsh мне нравится умный автокомплит
Мне, кстати, подобные плюшки абсолютно безразличны. Скорость важнее. Поэтому на корн и перешел.
Зы. Привет Тартан. Как там Pipe и компания?

PymOxim
() автор топика

Может, bash пытается запустить что-то из INVOCATION перед скриптом?

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

в-ва

Асм:

; yasm -felf64 -o 1.o 1.asm && ld -lc -I/lib64/ld-linux-x86-64.so.2 -o 1.elf 1.o

extern	puts
extern	exit
global	_start

section .data
msg		db 'Hello fuckin world!', 0

section .text

_start:
mov		rbx, 10000
_loop:
mov		rdi, msg
call		puts
dec		rbx
jnz		_loop

xor		rdi, rdi
call		exit

Баш:

sh -c 'for i in {1..10000}; do echo Hello fuckin world\!; done'

Результат (немного предсказуем):

$ time nice --20 ./1.elf >/dev/null 

real	0m0.003s
user	0m0.000s
sys	0m0.000s

$ time nice --20 ./1.elf >/dev/null 

real	0m0.003s
user	0m0.000s
sys	0m0.000s

$ time nice --20 sh -c 'for i in {1..10000}; do echo Hello fuckin world\!; done' >/dev/null 

real	0m0.154s
user	0m0.140s
sys	0m0.000s
$ time nice --20 sh -c 'for i in {1..10000}; do echo Hello fuckin world\!; done' >/dev/null 

real	0m0.154s
user	0m0.130s
sys	0m0.000s

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

> покажи код для перла
Я уже удалил файл. Это была первая моя строка на перле. Скопировал первый же for цикл, чуть-чуть поменял в рамках задачи.

PymOxim
() автор топика

Ура!!!!Холивар!!!Мяяясо!!!

>time ksh t.sh
0,08s user 0,03s system 52% cpu 0,207 total

>time zsh t.sh
0,07s user 0,04s system 67% cpu 0,166 total

переписываем в современном виде

%>cat t.sh
for i in {1..10000}; echo -n "*ice"

>time zsh t.sh
0,04s user 0,03s system 78% cpu 0,091 total

zolden ★★★★★
()
Ответ на: Ура!!!!Холивар!!!Мяяясо!!! от zolden

Это у тебя такие цифры. У меня какие были такие и остались. 0m0.17s
Даже в современной записи. В два раза медленнее чем Корн.

PymOxim
() автор топика
Ответ на: комментарий от PymOxim

Скрипты на zsh проще, красивее и как теперь оказалось - быстрее.
Ну разве не прелесть?
Моя аватарка смотрит на твои жалкие попытки с сочувствием

zolden ★★★★★
()

У меня busybox выдал результаты в 2 с небольшим раза быстрее zsh и в 4 быстрее bash (0.03 vs 0.07 vs 0.11)

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

> nice -n -20
Цифры не изменились. Видишь твой зсх жрет больше системных ресурсов 79%, а работает медленнее. А корн наоборот. Я победил.

PymOxim
() автор топика
Ответ на: комментарий от PymOxim

По директориям удобно бегать, я иногда даже рейнджер не включаю.

// С оттудова я самозабанился, там такого понаразвелось, ужас. Будет что написать - перерегистрируюсь и попрошу ключи от вики, в неё я пока верю. А как вычислили?

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

> давай сравним «precompiled» zsh скрипт. Не помню сходу как это делается, но гугл мне поможет
В режиме интерпретации же.

PymOxim
() автор топика
Ответ на: комментарий от anarquista

Dash и Bourne shell у меня только на пару сотых долей секунд медленнее чем корн. А так они тоже довольно быстры.

PymOxim
() автор топика
Ответ на: комментарий от anarquista

bash 0m0.35 - вот слоупочина. Никогда больше на нем писать не буду.

PymOxim
() автор топика

Должно быть вот так:

*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice*ice
Чтобы честно. Каждый символ играет роль.

PymOxim
() автор топика
Ответ на: комментарий от x3al

По времени? А если там бесконечный цикл с «input'ом», то есть вводом команд со стороны пользователя.

PymOxim
() автор топика
Ответ на: комментарий от PymOxim

>А если там бесконечный цикл с «input'ом», то есть вводом команд со стороны пользователя.
Сделай без. Иначе ты не измеряешь скорость шеллов.
Вспомни тред с java vs gcc. На моей машине, кстати, java в 1.5 раза быстрее clang на том тесте при любых cflags.

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