LINUX.ORG.RU
ФорумTalks

помогите сравнить языки


0

0

Решил сравнить производительность и выразительность различных
языков программирования.

для этого используется алгоритм Маркова и книжка "Практика программирования"

вот результаты тестирования для C, perl и awk:

time ./markov-c < test.txt > result.txt

real 0m0.132s
user 0m0.106s
sys 0m0.008s

time ./markov.pl < test.txt > result.txt

real 0m0.365s
user 0m0.330s
sys 0m0.016s

time ./markov.awk < test.txt > result.txt

real 0m0.342s
user 0m0.291s
sys 0m0.031s

anonymous

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

Хотелось бы увидеть реализацию этого алгоритма на python и ruby, чтобы
сравнить производительность и остальные параметры на своей машине.

для тех кто не читал Кернигана, вот реализация на перле:

#!/usr/bin/perl

$MAXGEN = 10000;
$NONWORD = "\n";
$w1 = $w2 = $NONWORD;

while (<>) {
foreach (split) {
push(@{$statetab{$w1}{$w2}}, $_);
($w1, $w2) = ($w2, $_);
}
}
push(@{$statetab{$w1}{$w2}}, $NONWORD);


$w1 = $w2 = $NONWORD;

for ($i=0; $i<$MAXGEN; $i++) {
$suf = $statetab{$w1}{$w2};
$r = int(rand @$suf);
exit if (($t=$suf->[$r]) eq $NONWORD);
print "$t\n";
($w1, $w2) = ($w2, $t);
}

anonymous
()

Ты бы эта, не через time сравнивал - до тех пор, пока время запуска сравнимо с временем работы алгоритма - так делать нельзя. Это первое. Второе - доведи время работы до десятков секунд. Третье - проведи минимум 10 измерений по каждому, отбрось максимальное и миимальное значение в каждой серии, и приводи среднее и дисперсию. Иначе хрень это, а не измерение.

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

> Иначе хрень это, а не измерение.

я провел несколько измерений, данные результаты отражают закономерность.

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

Ты не имеешь права просто "провести несколько измерений".

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

Кури метрологию.

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

>Ты не имеешь права производить измерения величины, которая сопоставима с >точностью собственно измерения.

ну какое же ты приставучее ламо.

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

но соотношение было все время такое - C быстрее раза в три перла и awk.
awk чуть быстрее перла.

именно поэтому я привел в первом посте вышеозначенные результаты.

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

> А как ты сравнивал выразительность ? На глаз ?

любой язык без матерных конструкций невыразителен.
в перле они есть, но зацензурированы.

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

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

Так что - не смей позориться. Измерение - это не то дело, где допустимы вольности и хамство, тут каждый, не следующий свято Канону, должен быть сначала кастрирован, потом облит смесью говна с бензином и сожжен во славу великой Палаты Мер и Весов.

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

Какой ты "физик". Ты такой же "физик", как и "программист". На физфак МГУ сразу поступил или как?

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

>Нет уж, ламо - это ты, а я - хоть и бывший, но физик, и

тебе уже объяснили уже кто ты такой, а ты еще возражаешь.

Есть ли ты не можешь отойти от правил, то ты всего лишь ламо

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

У меня к тебе, супер-пупер-мега-Не-Ламеру, деловое предложение.

Давай ты устроишься на недельку на какое либо опасное производство, и будешь там упоённо отходить от правил техники безопасности. Ты ведь не-ламо, так, правила не для тебя.

Есть правила, которые вовсе не на пустом месте построены. Метрология - это прямое следствие из статистики, всё тривиально выводится. Если ты не в состоянии вывести эти правила, то просто изволь тупо им следовать. Если бы ты мог их вывести - то не делал бы таких отвратительных глупостей.

Вкурил? Теперь - дуй на стройку, игнорировать ТБ. Надеюсь, больше никогда оттуда не вернёшься.

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