Создаем бэнчмарки

Раздел посвящен программированию с использованием Power Basic.
Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Создаем бэнчмарки

Сообщение Dark Machine » 09.04.2009 (Чт) 14:09

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

Условия примерно такие:
* Использовать только базисные операторы (без асма, без оптимизации)
* Возможность легко транслировать в другие языки
* Исключить простые мат. операции в больших циклах
* Алгоритмы должны быть ясными, обдуманные, из круга повседневных задач
* Одинаковая форма отчета тестов
* Разделить тесты на типы: математические, строковые, графические, сортировка, синтетические и т.д.

Далее надо определить базисные операторы. т.к. речь идет о Басик-е, то приведу список базисных строковых операторов:
LEFT, RIGHT, LEN, ASC, CHR, TRIM, LTRIM, RTRIM, INSTR, MID, IIF, SPACE, STRING, SWAP, LCASE, UCASE, VAL, STR

Базисные мат. операторы:
INT, MOD , +-/\*^ , SQR, FIX, ROUND

Операторы языка:
DIM, REDIM, UBOUND, LBOUND, GOTO, GOSUB, FOR/NEXT, IF/THEN/ELSE/ELSEIF, DO/LOOP, WHILE/WEND, SUB, FUNCTION, CASE

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Создаем бэнчмарки

Сообщение Debugger » 09.04.2009 (Чт) 14:42

Использовать только базисные операторы (без асма, без оптимизации)

Асм используется только там, где он реально нужен.
Без оптимизации - забавно.
Сразу предлагаю мега-алгоритм Jangle, который из 4х байт выдает целую строчку.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Создаем бэнчмарки

Сообщение jangle » 09.04.2009 (Чт) 15:02

Если сравнивать скорости работы разных компиляторов, лучше определить одну задачу.
Например - сжатие текстовых данные методом Хафмана, чисто алгоритмическая задача, без API и АСМ`а
Алгоритм с одной стороны довольно тривиален, но сразу позволит оценить эффективность компилятора, при сжатии скажем 10 мегабайт данных.

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Re: Создаем бэнчмарки

Сообщение Dark Machine » 09.04.2009 (Чт) 15:09

Для работы со строками предлагаю использовать готовые словари, можно в качестве сжатия данных подготовить ВМР файл.
Например - сжатие текстовых данные методом Хафмана

http://pbcrypto.com/algorithms/source/huffman.bas

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Создаем бэнчмарки

Сообщение jangle » 09.04.2009 (Чт) 15:12

Debugger писал(а):
Использовать только базисные операторы (без асма, без оптимизации)

Асм используется только там, где он реально нужен.
Без оптимизации - забавно.
Сразу предлагаю мега-алгоритм Jangle, который из 4х байт выдает целую строчку.


Да там нет никакого мега-алгоритма, просто подбор строки

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Создаем бэнчмарки

Сообщение jangle » 09.04.2009 (Чт) 15:19

Dark Machine писал(а):Для работы со строками предлагаю использовать готовые словари, можно в качестве сжатия данных подготовить ВМР файл.
Например - сжатие текстовых данные методом Хафмана

http://pbcrypto.com/algorithms/source/huffman.bas


Да код тут сложноватый, наверное, надо что-то попроще выбрать


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList