ZXNet эхоконференция «code.zx»


тема: Измерить чрезвычайно просто.



от: Valery Grigoriev
кому: All
дата: 21 Aug 2006
Hello, rasmer

Берёшь программу вида -
1 LET A=A+1; GOTO; 1
99 LET A=1; GOTO; 1

Запускаешь сие (при помощи RUN 99) на протяжении, скажем, 10 минут (засекать по
таймеру). Останавливаешь. Смотришь А. Делишь [10 (минут)*60 (секунд)*50
(фреймов)*69998 или 71998 (в зависомости от модели)] на полученное число. Вот
тебе и будет почти точное количество тактов на цикл вида LET A=A+1; GOTO; XXX

Далее, усложняешь её до вида:

1 : LET A=A+1; GOTO; 1
99 LET A=1; GOTO; 1

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

Что не учитывает такой подход: дело в том, что бейсик транслятор мягко говоря
туповат, и каждую строчку он ищет от первой. Потому - в целях снижения этих
затрат - запуск начинает с 99 строки, которая делает переход на первую - самую
быструю строчку, тем не менее даже первую строчку ему приходиться искать.

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

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




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
CODING - The Оптимизация - построение таблицы частоты повторения байтов.
Сладкие - три испачканных розы.
Программистам - The hacker club: Обзор защит.
Почта - письмо от Петрова Дмитрия (г. Волжский).
Scene - подробный отчет с ростовского пати Paradox'2002.

В этот день...   19 апреля