LINUX.ORG.RU

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


0

2

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



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

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

> Да, это миф, что компилируемые языки быстрее.

,

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

Нужно срочно переписать Ksh на Ksh, ящитаю!

uzbl
()
Ответ на: комментарий от zolden
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
int main()
{
	system("for i in `seq 1 10000`;do echo -n '*ice'; done");
}

real 0m0.11s Так даже больше.

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

А я щас вставлю в С++ эту строку из корна и посмотрим

гавно-вопрос, давай посмотрим.
Только последний вопрос, раз уж мы сравниваем шеллы, я просто не в курсе - gcc это точно часть ksh шелла?

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

> Забавно, но в python3 такой сферический цикл работает в три раза медленнее, чем в python2.
Да, он тормознее почему-то. Я сам тестировал.

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

zrecompile это часть zsh (builtin function)
«zercompile is a function that precompile the zsh code so that it would be faster»
Намёк понил? Или опять правила на ходу поменяешь?

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

Мне все равно. Я на c++ только чуть-чуть умею :) Подумаю, осваивать дальше или нет.

PymOxim
() автор топика
#include <stdio.h>
int main() {
	for (int i = 0; i <= 10000; i++)
		printf("*ice");
	return 0;
}

real 0m0.017s
user 0m0.000s
sys 0m0.000s
на AMD Athlon(tm) 64 Processor 3200+

tn1
()
for($x=0; $x<10000; $x++) {
	print "*ice";
}

На перде...ой! На перле. 0m0.04s

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

Я пойду спать, ибо ты меня очень уж утомил. Жду к утру сводную таблицу результатов.
Тесты делай в следующем виде:
strace -c ksh script.sh

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

Пойми, если ты сейчас сдашься и ляжешь спать, то это...это будет значить что ОНИ победили. Понимаешь?! И в интернете кто-то останется неправ!
Так что встань и пиши!

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

Всегда кто-то неправ! Пожалуй, завтра подсуечусь им «помочь», а сейчас немного, в пределах 8-10 часов, здорового сна.

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

странно, а у меня ничего не изменилось

zolden ★★★★★
()

GNU Awk тоже дает, кстати, очень хороший результат, на уровне perl фактически. Чуть медленнее.

anarquista ★★★★★
()

В треде тестируется скорость эмулятора терминала, но все так увлечены что абсолютно этого не замечают.

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

т.е. ты утверждаешь что результаты через tty будут разительно отличаться от иксовых эмуляторов?

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

> В треде тестируется скорость эмулятора терминала, но все так увлечены что абсолютно этого не замечают.
Я без иксов тестировал, то же самое.

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

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

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

> большую часть времени у тебя занимает старт бинаря
Какого бинаря?! Вообще, я собираюсь сделать целый ряд тестов - циклы различной сложности, алгоритмы, математические операции.

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

time some_shell test.sh > dev/null

Миллион раз. Ksh 0m2.77 Zsh вообще зацикливается до бесконечности. Лол. Он с такими числами не умеет работать? :) Может цикл как-то записать по-другому?

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

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

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

Так и запишем. Не умеет. С `seq 1 1000` работает медленнее? Медленнее. Так и запишем. Корн, признаюсь честно, с вложенными циклами не очень справляется. Тут лидирует Dash. Но у него как и у баша костыльные тригонометрические функции. В zsh нужен математический модуль импортировать. Давайте какие-нибудь формулы.

PymOxim
() автор топика
c=1
for a in `seq 1 1000`;do
	c=$(($a+$c))
	for  b in `seq 1 1000`;do
		c=$(($b+$c))
	done
	echo -n $c
done

Тут лидирует dash. Печаль.

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

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

Одно другому не мешает, вот ccsh — это и bash, и няшная сишечка сразу

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

> среди shell'ов korn быстрее.

кстати, какие шеллы сравнивал? реквестирую сравнения dash или ash встроенный в binutils, scsh на схеме

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